ó
    î³ÄjU1  ã                   ób  • S SK JrJrJrJrJr  S SKJrJr  S SK	J
r
  S SKrS SKJr  S SKJr  S SKJrJrJrJrJrJrJrJrJrJrJrJrJrJrJr  S SK J!r!  S SK"r"S SK#r#S SK$r$S S	K%J&r&  \" 5       r'\'RQ                  S
\S9SS\S\)S\*4S jj5       r+\'RY                  S
5      \" S5      \" S5      \" \5      4S\S\*S\*S\
4S jj5       r-\'RY                  S5      \" \5      4S\S\
4S jj5       r.\'RY                  S5      \" S5      \" \5      \" \5      4S\S\)S\*S\
S\R^                  4
S jj5       r0g)é    )Ú	APIRouterÚRequestÚDependsÚFormÚstatus)ÚHTMLResponseÚRedirectResponse)ÚSessionN)Úget_db)ÚACCESS_TOKEN_EXPIRE_MINUTES)Úverify_passwordÚcreate_access_tokenÚbelepesi_tokenÚmunkamenet_megszunteteseÚHIBAKOD_SZIMULTANÚget_current_userÚget_current_user_optionalÚis_company_accessibleÚget_client_ipÚbiztonsagos_atiranyitasÚDUMMY_PASSWORD_HASHÚcreate_mfa_pending_tokenÚMFA_PENDING_COOKIEÚMFA_PENDING_PERCÚMFA_BEALLITAS_PERC)Úhiba_uzenet)Ú	templatesú/login)Úresponse_classÚrequestÚ	aktivalvaÚhibakodc                 ó‚   • U(       a  SS0O0 nU[         :X  a  [        S[         5      US'   [        R                  " U SUS9$ )NÚinfouJ   A fiÃ³kod aktivÃ¡lva lett. Most mÃ¡r bejelentkezhetsz az Ãºj jelszavaddal.u6   A munkamenet megszÅ±nt, kÃ©rjÃ¼k, jelentkezz be Ãºjra!Úerrorú
login.html©r    ÚnameÚcontext)r   r   r   ÚTemplateResponse)r    r!   r"   r)   s       Ú /var/www/website/routers/auth.pyÚ
login_pager,      sP   € ö irˆvÐcÑdÐwy€Gð Ô#Ó#Ü&Ð'_ÔarÓsˆ�ÑÜ×%Ò%ØØØñð ó    .ÚemailÚpasswordÚdbc                 ó^  • [        U 5      n[        R                  " X4U5      (       a&  [        R                  " U SS[        R
                  0S9$ UR                  [        R                  5      R                  [        R                  R                  U:H  5      R                  5       nU(       dM  [        U[        5        [        R                  " X4U5        [        R                  " U SS[        R                  0S9$ [        X%R                   5      nU(       d=  [        R                  " X4X5        [        R                  " U SS[        R                  0S9$ UR"                  SL a  [        R                  " U SSS0S9$ UR$                  (       d  [        R                  " U SSS0S9$ [&        R(                  " X55      nU[&        R*                  :X  aM  [-        S[.        R0                  S9nUR3                  [4        [7        UR                  5      S	S	S
S[8        S-  S9  U$ U[&        R:                  :X  aL  [-        S[.        R0                  S9nUR3                  [4        [7        UR                  SS9S	S	S
S[<        S-  S9  U$ U[&        R>                  :w  ag  URA                  [        RB                  " URD                  URF                  SSSU S3S95        URI                  5         [        R                  " U SSS0S9$ [        RJ                  " X4U5        URA                  [        RB                  " URD                  URF                  SSSU S3S95        URI                  5         [M        X5U5      n	[-        [N        RP                  " X55      [.        R0                  S9nUR3                  SU	S	S	S[R        S-  S9  U$ )Nr&   r%   r'   Fux   A fiÃ³kod mÃ©g nincs aktivÃ¡lva. Nyisd meg az e-mailben kapott aktivÃ¡lÃ³ linket, vagy kÃ©rj Ãºjat a rendszergazdÃ¡tÃ³l!uU   Ez a felhasznÃ¡lÃ³i fiÃ³k inaktivÃ¡lva lett. KÃ©rjÃ¼k, forduljon a rendszergazdÃ¡hoz!ú/mfa©ÚurlÚstatus_codeTÚstricté<   )ÚkeyÚvalueÚhttponlyÚsecureÚsamesiteÚpathÚmax_agez/mfa/beallitasÚ	beallitas)Úcelu   BejelentkezÃ©sÚ-uj   ElutasÃ­tva: a kÃ©tlÃ©pcsÅ‘s hitelesÃ­tÃ©s beÃ¡llÃ­tÃ¡sa nem olvashatÃ³ vissza, rendszeradmin-reset kell (Ú)©Ú
company_idÚuser_idÚ
field_nameÚ	old_valueÚ	new_valueu½   A kÃ©tlÃ©pcsÅ‘s hitelesÃ­tÃ©sed beÃ¡llÃ­tÃ¡sa nem olvashatÃ³ vissza (pl. a szerver titkosÃ­tÃ¡si kulcsa megvÃ¡ltozott), ezÃ©rt Ãºjra be kell Ã¡llÃ­tani. KÃ©rd a rendszergazda segÃ­tsÃ©gÃ©t!u   Sikeres bejelentkezÃ©s (Úaccess_tokenÚlax©r8   r9   r:   r;   r<   r>   )*r   Úlogin_vedelemÚtiltva_er   r*   ÚTILTOTT_UZENETÚqueryÚmodelsÚUserÚfilterr.   Úfirstr   r   Úsikertelen_rogziteseÚGENERIKUS_HIBAÚhashed_passwordr!   ÚaktivÚ	mfa_utilsÚallapotÚALLAPOT_KESZr	   r   ÚHTTP_303_SEE_OTHERÚ
set_cookier   r   r   ÚALLAPOT_BEALLITANDOr   Ú
ALLAPOT_KIÚaddÚAuditLogrD   ÚidÚcommitÚsikeres_torleser   Újelszo_hazirendÚbelepes_utani_celr   )
r    r.   r/   r0   Ú	client_ipÚuserÚjelszo_helyesÚmfa_allapotÚresprI   s
             r+   Ú
login_postrk   &   s‚  € ô ˜gÓ&€Iô ×Ò˜b¨U×3Ñ3Ü×)Ò)ØØØœm×:Ñ:Ð;ñ
ð 	
ð �8‰8”F—K‘KÓ ×'Ñ'¬¯©×(9Ñ(9¸UÑ(BÓC×IÑIÓK€Dæô 	˜Ô"5Ô6Ü×*Ò*¨2¸%Ô@Ü×)Ò)ØØØœm×:Ñ:Ð;ñ
ð 	
ô $ H×.BÑ.BÓC€MÞÜ×*Ò*¨2¸%ÔFÜ×)Ò)ØØØœm×:Ñ:Ð;ñ
ð 	
ð ‡~�~˜Òô ×)Ò)ØØØð  Yð  Zñ
ð 	
ð �:�:Ü×)Ò)ØØØÐuÐvñ
ð 	
ô" ×#Ò# BÓ-€KØ”i×,Ñ,Ó,Ü F¼×8QÑ8QÑRˆØ�‰Ü"Ü*¨4¯:©:Ó6ØØØØÜ$ rÑ)ð 	ñ 	
ð ˆØ”i×3Ñ3Ó3ÜÐ$4Ä&×B[ÑB[Ñ\ˆØ�‰Ü"Ü*¨4¯:©:¸;ÑGØØØØÜ&¨Ñ+ð 	ñ 	
ð ˆØ”i×*Ñ*Ó*Ø
�‰Œv�ŠØ—‘Ø—G‘GØ'Øð Cð  DMð  CNð  NOð  Pñ
ô 	ð 	�	‰	ŒÜ×)Ò)ØØØð fð gñ
ð 	
ô ×!Ò! "°Ô7ð ‡F�FŒ6�?Š?Ø—?‘?Ø—‘Ø#ØØ,¨Y¨K°qÐ9ñô ð ‡I�I„Kô " "¨IÓ6€Lô ¤× AÒ AÀ"Ó KÔY_×YrÑYrÑs€DØ‡O�OØØØØØÜ+¨bÑ0ð ñ ð €Kr-   z/logoutc                 óŒ  • [        X5      nU(       ac  [        X5        UR                  [        R                  " UR
                  UR                  SSS[        U 5       S3S95        UR                  5         [        S[        R                  S9nUR                  S5        UR                  S	5        UR                  [        S
S9  U$ )Nu   KijelentkezÃ©srA   zKijelentkezett (rB   rC   r   r3   rI   Úworkspace_idr2   )r=   )r   r   r_   rP   r`   rD   ra   r   rb   r	   r   r[   Údelete_cookier   )r    r0   Úcurrent_userrj   s       r+   Úlogoutrp   ·   sª   € ô -¨WÓ9€LÞÜ  Ô2Ø
�‰Œv�ŠØ#×.Ñ.Ø —O‘OØ'ØØ(¬°wÓ)?Ð(@ÀÐBñ
ô 	ð 	�	‰	Œä ´f×6OÑ6OÑP€DØ×Ñ�~Ô&Ø×Ñ�~Ô&Ø×ÑÔ)°ÐÑ7Ø€Kr-   z/valaszt-ceget/{company_id}Ú/rD   Únextro   c           	      óÊ   • [        XA5      (       d
  [        SSS9$ Xl        UR                  5         [	        U5      n[        USS9nUR                  S[        U5      SSSSS9  U$ )	uê  BeÃ¡llÃ­tja a kivÃ¡lasztott cÃ©g azonosÃ­tÃ³jÃ¡t egy biztonsÃ¡gos Cookie-ba, majd visszairÃ¡nyÃ­t.
A vÃ¡lasztÃ¡st a felhasznÃ¡lÃ³ fiÃ³kjÃ¡ban is tartÃ³san elmentjÃ¼k (utolso_ceg_id) - Ã­gy a cookie
lejÃ¡rta, kijelentkezÃ©s utÃ¡ni Ãºj bejelentkezÃ©s, vagy mÃ¡sik eszkÃ¶z esetÃ©n is ez lesz az
alapÃ©rtelmezett MunkakÃ¶rnyezet, nem mindig a felhasznÃ¡lÃ³ sajÃ¡t (company_id) cÃ©ge.

SZÃ�NDÃ‰KOSAN POST (2026-09-24-i kÃ¼lsÅ‘ audit talÃ¡lata - korÃ¡bban GET volt): egy Ã¡llapotot
vÃ¡ltoztatÃ³ mÅ±veletnek nem szabadna GET-nek lennie, mert a SameSite=Lax cookie egy top-level
navigÃ¡ciÃ³nÃ¡l (pl. egy phishing linkre kattintva) is elkÃ¼ldÃ©sre kerÃ¼l - egy GET-es
munkakÃ¶rnyezet-vÃ¡ltÃ³ URL-t Ã­gy egy kÃ¼lsÅ‘ oldalrÃ³l is ki lehetett volna vÃ¡ltani.rq   i/  r3   rm   TrJ   i€Q rK   )r   r	   Úutolso_ceg_idrb   r   r\   Ústr)r    rD   rr   r0   ro   Ú
tiszta_urlÚresponses          r+   Úvalaszt_cegetrx   Ö   sl   € ô" ! ×:Ñ:Ü C°SÑ9Ð9à!+ÔØ‡I�I„Kô )¨Ó.€JÜ J¸CÑ@€Hð ×Ñ˜N´#°j³/ÈDÐY]ÐhmÐw|ÐÑ}Ø€Or-   )r   Ú )1Úfastapir   r   r   r   r   Úfastapi.responsesr   r	   Úsqlalchemy.ormr
   rP   Údatabaser   Úconfigr   Úsecurityr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Ú	hibakodokr   rL   rd   rX   Útemplates_envr   ÚrouterÚgetÚintru   r,   Úpostrk   rp   rQ   rx   © r-   r+   Ú<module>r‡      s{  ðß =Õ =ß <Ý "ã Ý Ý .÷÷ ÷ ÷ ñ õ
 "Û Û Û Ý #á	‹€ð ‡�ˆH \€Ð2ñ˜ð ¨Cð ¸cô ó 3ðð ‡�ˆXÓñ �c“Ù˜“IÙ˜&“/ñ	MØðMàðMð ðMð 	ô	Mó ðMð` ‡�ˆYÓÙ+2°6«?ñ �Gð  ô ó ðð< ‡�Ð*Ó+ñ �S“	Ù˜&“/Ù 'Ð(8Ó 9ñØðàðð ðð 	ð	ð
 —+‘+ôó ,ñr-   