Files
boc/landvex/user-management/app/__pycache__/dependencies.cpython-39.pyc
T

20 lines
2.4 KiB
Plaintext
Raw Normal View History

a
^1GjZ ã@dZddlmZddlmZddlmZmZmZddl m
Z
ddl m Z ddl
mZddlmZdd lmZmZmZdd
lmZdd lmZe
d d
Zeeƒeeƒfee edœddZeeƒfeedœddZGdddƒZeejƒZeej ƒZ!eej"ƒZ#dS)u+FastAPI dependencies för auth och databas.é)ÚOptional)ÚUUID)ÚDependsÚ
HTTPExceptionÚstatus)ÚOAuth2PasswordBearer)Ú AsyncSession)Úselect)Úget_db)ÚUserÚUserRoleÚ
UserStatus)Ú TokenPayload)Ú decode_tokenz/api/v1/auth/login)ZtokenUrl)ÚtokenÚdbÚreturncÃttjdddid}t|ƒ}|dus2| d¡dkr6|| d¡}|durL|| ttƒ tj t
|ƒk¡¡IdH}|  ¡}|dur„||jt j
kržttjdd |S)
NzCould not validate credentialszWWW-AuthenticateZBearer)Ú status_codeÚdetailZheadersÚtypeÚaccessÚsubz#User account is inactive or pending©rr)rrZHTTP_401_UNAUTHORIZEDrÚgetZexecuter r ÚwhereÚidrZscalar_one_or_noner
ZACTIVEÚHTTP_403_FORBIDDEN)rrZcredentials_exceptionZpayloadZuser_idÚresultÚuser©rúapp/dependencies.pyÚget_current_users*ý
$ þr!©Ú current_userrcÃs|jsttjdd|S)NzSuperuser privilege requiredr)Z is_superuserrrr)r#rrr Úget_current_active_superuser0s þr$c@s2eZdZedœddZeeƒfeedœddZdS)Ú RoleChecker©Úmin_rolecCs
||_dS)Nr&)Úselfr'rrr Ú__init__<szRoleChecker.__init__r"cÃs>ddlm}||jƒ||jƒkr:ttjd|jjdd|S)Nr)Ú
role_levelzRequires role z
or higherr)Ú app.securityr*Zroler'rrrÚvalue)r(r#r*rrr Ú__call__?s þzRoleChecker.__call__N) Ú__name__Ú
__module__Ú __qualname__r r)rr!r r-rrrr r%;sr%N)$Ú__doc__ÚtypingrZuuidrZfastapirrrZfastapi.securityrZsqlalchemy.ext.asynciorZ
sqlalchemyr Z app.databaser