+
    |w¼j¤  ã            	       óˆ  € ^ RI HtHtHtHt ^ RIHtHt ^ RIH	t	 ^ RI
Ht ^ RIHt ^ RIHt ^ RIHtHt ^ RIHtHt ^ R	It^ R	It]! ]! ]! R
4      4      .R7      t]P2                  P5                  ]P2                  P5                  ]P2                  P5                  ]P2                  P7                  ]4      4      4      4      t]	! ]P2                  P=                  ]R4      R7      t] U u0 uF  q P@                  kK  	  up t!R R lt"]PG                  R]R7      ]! ]4      3R R ll4       t$]PK                  R4      ]! R4      ]! R4      ]! R4      ]! R4      ]! ]4      3R R ll4       t&]PK                  R4      ]! ]4      ]! ]4      3R R ll4       t']PK                  R4      ]! R4      ]! ]4      3R R ll4       t(R	# u up i )é    )Ú	APIRouterÚRequestÚFormÚDepends)ÚHTMLResponseÚRedirectResponse)ÚJinja2Templates)ÚAsyncSession)Úselect)Úget_db)ÚUserÚUserRole)Úrequire_rolesÚget_current_userNÚsuper_admin)Údependencieszapp/templates)Ú	directoryc                ó0   € V ^8„  d   QhR\         R\         /# )é   ÚpasswordÚreturn)Ústr)Úformats   "Ú)/var/www/html/bestweb/app/routes/users.pyÚ__annotate__r      s   € ÷ Gñ GœCð G¤Cñ Gó    c                 óŽ   € \         P                  ! V P                  4       \         P                  ! 4       4      P	                  4       # )N)ÚbcryptÚhashpwÚencodeÚgensaltÚdecode)r   s   &r   Úhash_passwordr#      s*   € Ü�=Š=˜Ÿ™Ó*¬F¯NªNÓ,<Ó=×DÑDÓFÐFr   z/users)Úresponse_classc                ó0   € V ^8„  d   QhR\         R\        /# )r   ÚrequestÚdb)r   r
   )r   s   "r   r   r      s   € ÷ dñ dœgð d¬<ñ dr   c              ƒ   ó  "  € VP                  \        \        4      P                  \        P                  4      4      G R j  x€L
 pVP                  4       P                  4       p\        P                  V RRV/R7      #  L<5i)Nz
users.htmlÚusers)r&   ÚnameÚcontext)	Úexecuter   r   Úorder_byÚidÚscalarsÚallÚ	templatesÚTemplateResponse)r&   r'   Úresultr)   s   &&  r   Ú
users_pager4      sb   é € à—:‘:œf¤T›l×3Ñ3´D·G±GÓ<Ó=×=€FØ�N‰NÓ× Ñ Ó"€EÜ×%Ñ%¨g¸LÐSZÐ\aÐRbÐ%ÓcÐcñ >ùs   ‚?B ÁA>Á=B z/users/create.c                ó`   € V ^8„  d   QhR\         R\        R\        R\        R\        R\        /# )r   r&   ÚusernameÚ	full_namer   Úroler'   )r   r   r
   )r   s   "r   r   r      sL   € ÷ Kñ KÜðKäðKô ðKô ð	Kô
 ðKô 	ñKr   c           
   ƒ   ó  "  € VP                  4       pVP                  4       pV'       d$   V'       d   \        V4      ^8  g   V\        9  d   \        RRR7      # VP	                  \        \        4      P                  \        P                  V8H  4      4      G Rj  x€L
 pV'       d   \        RRR7      # VP                  \        W\        V4      VRR7      4       VP                  4       G Rj  x€L
  \        RRR7      #  Le L5i)	é   z/users?error=invalidé/  ©ÚurlÚstatus_codeNz/users?error=username_existsT)r6   r7   Úhashed_passwordr8   Ú	is_activez/users?success=created)ÚstripÚlenÚVALID_ROLESr   Úscalarr   r   Úwherer6   Úaddr#   Úcommit)r&   r6   r7   r   r8   r'   Úexistings   &&&&&& r   Úcreate_userrI      sÆ   é € ð �~‰~Ó€HØ—‘Ó!€IßŸ9¬¨H«¸Ô(9¸TÌÔ=TÜÐ$:ÈÔLÐLØ—Y‘Yœv¤d›|×1Ñ1´$·-±-À8Ñ2KÓLÓM×M€HßÜÐ$BÐPSÔTÐTØ‡F�FŒ4˜ÌÐV^ÓH_ÐfjÐvzÔ{Ô|Ø
�)‰)‹+×ÐÜÐ 8ÀcÔJÐJñ Nñ ùs0   ‚0D³A)DÂDÂDÂ)ADÃ0DÃ1DÄDz/users/{user_id}/togglec                ó<   € V ^8„  d   QhR\         R\        R\        /# )r   Úuser_idÚcurrent_userr'   )Úintr   r
   )r   s   "r   r   r   3   s+   € ÷ 
Kñ 
KÜð
Käð
Kô 	ñ
Kr   c              ƒ   ó$  "  € VP                  \        V 4      G R j  x€L
 pV'       d   VP                  VP                  8X  d   \        RRR7      # VP                  '       * Vn        VP                  4       G R j  x€L
  \        RRR7      #  Lo L5i)Nz/users?error=invalid_targetr;   r<   z/users?success=toggled)Úgetr   r.   r   r@   rG   )rK   rL   r'   Úusers   &&& r   Útoggle_userrQ   2   so   é € ð —‘œ˜gÓ&×&€Dß�4—7‘7˜lŸo™oÔ-ÜÐ$AÈsÔSÐSØŸ™Ô'€D„NØ
�)‰)‹+×ÐÜÐ 8ÀcÔJÐJñ 'ñ ùs'   ‚BœB�B©ABÁ:BÁ;BÂBz/users/{user_id}/reset-passwordc                ó<   € V ^8„  d   QhR\         R\        R\        /# )r   rK   r   r'   )rM   r   r
   )r   s   "r   r   r   A   s+   € ÷ 
Rñ 
RÜð
Räð
Rô 	ñ
Rr   c              ƒ   ó  "  € VP                  \        V 4      G R j  x€L
 pV'       d   \        V4      ^8  d   \        RRR7      # \	        V4      Vn        VP                  4       G R j  x€L
  \        RRR7      #  L^ L5i)Nz/users?error=invalid_passwordr;   r<   z/users?success=password_reset)rO   r   rB   r   r#   r?   rG   )rK   r   r'   rP   s   &&& r   Úreset_passwordrT   @   sk   é € ð —‘œ˜gÓ&×&€Dß”3�x“= 1Ô$ÜÐ$CÐQTÔUÐUÜ(¨Ó2€DÔØ
�)‰)‹+×ÐÜÐ ?ÈSÔQÐQñ 'ñ ùs'   ‚A?œA;�A?©A A?Á)A=Á*A?Á=A?))Úfastapir   r   r   r   Úfastapi.responsesr   r   Úfastapi.templatingr	   Úsqlalchemy.ext.asyncior
   Ú
sqlalchemyr   Úapp.core.databaser   Úapp.models.modelsr   r   Úapp.core.securityr   r   r   ÚosÚrouterÚpathÚdirnameÚabspathÚ__file__ÚBASE_DIRÚjoinr1   ÚvaluerC   r#   rO   r4   ÚpostrI   rQ   rT   )r8   s   0r   Ú<module>rg      s�  ðß 5Ó 5ß <Ý .Ý /Ý Ý $ß ,ß =Û Û 	á	¡©°}Ó)EÓ!FÐ GÔ	H€Ø�7‰7�?‰?˜2Ÿ7™7Ÿ?™?¨2¯7©7¯?©?¸2¿7¹7¿?¹?È8Ó;TÓ+UÓVÓW€Ù b§g¡g§l¡l°8¸_Ó&MÔN€	Ù&.Ó/¡h˜d�zŒz¡hÑ/€õGð ‡�ˆH \€Ó2Ù:AÀ&»/ö dó 3ðdð ‡�ˆ_Óñ ˜“IÙ˜#“YÙ˜“IÙ�S“	Ù˜v“öKó ðKð( ‡�Ð&Ó'ñ !Ð!1Ó2Ù˜v“ö
Kó (ð
Kð ‡�Ð.Ó/ñ ˜“IÙ˜v“ö
Ró 0ò
Rùòe 0s   Ã(F?