Ë
    5åj†%  ã                   ó:  — d Z ddlmZmZ ddlmZmZmZmZ ddl	m
Z
 ddlmZ ddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ d„ Zd„ Zee
d„ «       «       Z d„ Z!e
ed„ «       «       Z"d„ Z#d„ Z$ee
d„ «       «       Z%ede&de&fd„«       Z'y)u„   
User-related views â€“ migrated from core/views.py

Covers authentication, password management, and user settings (Einstellungen).
é    )ÚrenderÚredirect)ÚauthenticateÚloginÚlogoutÚupdate_session_auth_hash)Úlogin_required)Úmessages)Útimezone)Úrequire_POST)Únormale_user_required)ÚEmailMultiAlternatives)Úreu_person_access_required)Úrender_to_string)ÚUser)Ú	AdminUser)Úprotokolliere_anmeldungc                 ó\   — | j                   j                  rt        d«      S t        | d«      S )u   GET /login â€“ show login form.ú/úusers/login.html)ÚuserÚis_authenticatedr   r   ©Úrequests    ú)/var/www/html/vportal/app_nutzer/views.pyÚ
login_viewr      s'   € à‡|�|×$Ò$Ü˜‹}ÐÜ�'Ð-Ó.Ð.ó    c                 ó:  — | j                   dk7  rt        d«      S | j                  j                  dd«      j	                  «       }| j                  j                  dd«      }|r|st        | dddi| j                  dœ«      S t        | ||¬	«      }t        |t        «      rd
}|� t        | |«       t        j                  j                  |j                  ¬«      j                  t        j                   «       | j"                  j                  dd«      ¬«       t%        | |«       t'        j(                  | d«       t        d«      S t        j                  j                  |¬«      j+                  «       }|�t%        | |d¬«       t        | dddi| j                  dœ«      S )u+   POST /users/authenticate â€“ perform login.ÚPOSTú/loginÚemailÚ Úpasswordr   z&E-Mail und Passwort sind erforderlich.)ÚerrorsÚold)Úusernamer#   N)Ú
PersonenIDÚREMOTE_ADDR)Ú
last_loginÚlast_login_ipu#   Anmeldung erfolgreich durchgefÃ¼hrtr   )Úemail__iexactF)Úerfolgreichu   UngÃ¼ltige Anmeldedaten)Úmethodr   r   ÚgetÚstripr   r   Ú
isinstancer   r   r   ÚobjectsÚfilterr'   Úupdater   ÚnowÚMETAr   r
   ÚsuccessÚfirst)r   r!   r#   r   Úbekannter_users        r   Úauthenticate_viewr9   !   ss  € à‡~�~˜ÒÜ˜Ó!Ð!Ø�L‰L×Ñ˜W bÓ)×/Ñ/Ó1€EØ�|‰|×Ñ 
¨BÓ/€HÙ™Ü�gÐ1ØÐ HÐIØ—<‘<ñ4
ó ð 	ô
 ˜¨%¸(ÔC€Dô �$œ	Ô"ØˆàÐÜˆg�tÔÜ�‰×Ñ t§¡ÐÓ7×>Ñ>Ü—|‘|“~Ø!Ÿ,™,×*Ñ*¨=¸"Ó=ð 	?ô 	
ô 	  ¨Ô.Ü×Ñ˜Ð"GÔHÜ˜‹}Ðô Ÿ™×,Ñ,¸5Ð,ÓA×GÑGÓIˆØÐ%Ü# G¨^ÈÕOÜ�gÐ1ØÐ 9Ð:Ø—<‘<ñ4
ó ð 	r   c                 óZ   — t        | «       t        j                  | d«       t        d«      S )u   POST /logout â€“ log out user.z%Benutzer wurde erfolgreich abgemeldetr    )r   r
   r6   r   r   s    r   Úlogout_viewr;   G   s'   € ô ˆ7„OÜ×Ñ�WÐEÔFÜ�HÓÐr   c                 ó|  — | j                   dk7  rt        | d«      S | j                  j                  dd«      j	                  «       }|st        | dddi«      S 	 t
        j                  j                  |¬«      }dd	lm} dd
l	m
} ddlm} |j                  |«      }| j                  d|› d|› �«      }d|› �}t        d||dœ«      }	t!        d||j"                  |g¬«      }|j%                  |	d«       |j'                  d¬«       t+        j,                  | d«       t/        d«      S # t
        j(                  $ r Y Œ6w xY w)u:   GET/POST /forgot-pw-form â€“ show form or send reset link.r   zusers/forgot_pw_form.htmlr!   r"   Úerrorz E-Mail-Adresse ist erforderlich.©r!   r   ©Údefault_token_generator)Ú	send_mail)Úsettingsz/reset-password/z?email=uF   Klicken Sie auf den folgenden Link, um Ihr Passwort zurÃ¼ckzusetzen:

zusers/reset_pw_email.html)Ú	reset_urlr   u   Passwort zurÃ¼cksetzen)ÚsubjectÚbodyÚ
from_emailÚtoz	text/htmlF)Úfail_silentlyzKFalls ein Konto mit dieser E-Mail existiert, wurde ein Reset-Link gesendet.z/forgot-pw-form)r-   r   r   r.   r/   r   r1   Údjango.contrib.auth.tokensr@   Údjango.core.mailrA   Údjango.confrB   Ú
make_tokenÚbuild_absolute_urir   r   ÚDEFAULT_FROM_EMAILÚattach_alternativeÚsendÚDoesNotExistr
   r6   r   )
r   r!   r   r@   rA   rB   ÚtokenrC   Útext_contentÚhtml_contents
             r   Úforgot_password_formrU   T   sJ  € à‡~�~˜ÒÜ�gÐ:Ó;Ð;à�L‰L×Ñ˜W bÓ)×/Ñ/Ó1€EÙÜ�gÐ:¸WÐFhÐ<iÓjÐjðÜ�|‰|×Ñ eÐÓ,ˆÝFÝ.Ý(à'×2Ñ2°4Ó8ˆØ×.Ñ.Ð1AÀ%ÀÈÐPUÈwÐ/WÓXˆ	àaÐbkÐalÐmˆô (Ð(CØ"ØñF
ó ˆô
 'Ø,ØØ×2Ñ2Øˆwô	
ˆð 	× Ñ  ¨{Ô;Ø�
‰
 ˆ
Ô'ô ×Ñ�WÐkÔlÜÐ%Ó&Ð&øô	 ×Ñò Ùðús   ÁB,D% Ä%D;Ä:D;c                 óÊ  — | j                   dk7  rt        d«      S | j                  j                  dd«      }| j                  j                  dd«      }| j                  j                  dd«      }i }|sd|d<   |rt	        |«      dk  st	        |«      d	kD  rd
|d<   nL||k7  rd|d<   nA| j
                  j                  |«      sd|d<   n | j
                  j                  |«      rd|d<   |rt        | dd|i«      S | j
                  j                  |«       | j
                  j                  «        t        | | j
                  «       t        j                  | d«       t        d«      S )u/   POST /users/changepassword â€“ change password.r   z/einstellungenÚcurrent_passwordr"   Únew_passwordÚnew_password_confirmationz-Das aktuelle Passwort muss eingegeben werden.é   é   z2Das neue Passwort muss 6 bis 25 Zeichen enthalten.u@   Das neue Passwort stimmt nicht mit dessen Wiederholung Ã¼berein.z+Eingabe des Aktuellen Passworts war falsch.u<   Das neue und das alte Passwort dÃ¼rfen nicht identisch sein!úeinstellungen.htmlr$   u%   Password wurde erfolgreich geÃ¤ndert!)r-   r   r   r.   Úlenr   Úcheck_passwordr   Úset_passwordÚsaver   r
   r6   )r   rW   rX   rY   r$   s        r   Úchange_passwordra   }   sL  € ð ‡~�~˜ÒÜÐ(Ó)Ð)à—|‘|×'Ñ'Ð(:¸BÓ?ÐØ—<‘<×#Ñ# N°BÓ7€LØ '§¡× 0Ñ 0Ð1LÈbÓ QÐà€FÙØ%TˆÐ!Ñ"Ùœ3˜|Ó,¨qÒ0´C¸Ó4EÈÒ4JØ!Uˆˆ~ÒØ	Ð2Ò	2Ø!cˆˆ~ÒØ�\‰\×(Ñ(Ð)9Ô:Ø%RˆÐ!Ò"Ø	�‰×	$Ñ	$ \Ô	2Ø!_ˆˆ~ÑáÜ�gÐ3°hÀÐ5GÓHÐHà‡L�L×Ñ˜lÔ+Ø‡L�L×ÑÔÜ˜W g§l¡lÔ3Ü×Ñ�WÐEÔFÜÐ$Ó%Ð%r   c                 óZ   — | j                   j                  dd«      }t        | d||dœ«      S )u0   GET /reset-password/{token} â€“ show reset form.r!   r"   úusers/reset_pw.html)rR   r!   )ÚGETr.   r   )r   rR   r!   s      r   Úpassword_reset_confirmre   ž   s+   € à�K‰K�O‰O˜G RÓ(€EÜ�'Ð0¸EÈEÑ2RÓSÐSr   c           	      ó  — | j                   dk7  rt        d«      S | j                  j                  dd«      }| j                  j                  dd«      }| j                  j                  dd«      }| j                  j                  dd«      }i }|sd|d<   |sd	|d<   t	        |«      d
k  rd|d<   n
||k7  rd|d<   |rt        | d|||dœ«      S ddlm} 	 t        j                  j                  |¬«      }|j                  ||«      rB|j                  |«       |j                  «        t        j                  | d«       t        d«      S t        | d||ddidœ«      S # t        j                  $ r t        | d||ddidœ«      cY S w xY w)u0   POST /reset-password â€“ perform password reset.r   r    rR   r"   r!   r#   Úpassword_confirmationzToken ist erforderlich.zE-Mail ist erforderlich.é   z-Passwort muss mindestens 8 Zeichen lang sein.u#   PasswÃ¶rter stimmen nicht Ã¼berein.rc   )rR   r!   r$   r   r?   r>   u*   Passwort wurde erfolgreich zurÃ¼ckgesetzt.u$   UngÃ¼ltiger oder abgelaufener Token.u   UngÃ¼ltige E-Mail-Adresse.)r-   r   r   r.   r]   r   rI   r@   r   r1   Úcheck_tokenr_   r`   r
   r6   rQ   )r   rR   r!   r#   rg   r$   r@   r   s           r   Úpassword_reset_submitrj   ¤   s˜  € à‡~�~˜ÒÜ˜Ó!Ð!à�L‰L×Ñ˜W bÓ)€EØ�L‰L×Ñ˜W bÓ)€EØ�|‰|×Ñ 
¨BÓ/€HØ#ŸL™L×,Ñ,Ð-DÀbÓIÐà€FÙØ3ˆˆw‰ÙØ4ˆˆw‰Ü
ˆ8ƒ}�qÒØLˆˆzÒØ	Ð*Ò	*ØBˆˆzÑáÜ�gÐ4ÀÐPUÐagÑ6hÓiÐiåBðÜ�|‰|×Ñ eÐÓ,ˆØ"×.Ñ.¨t°UÔ;Ø×Ñ˜hÔ'Ø�I‰IŒKÜ×Ñ˜WÐ&RÔSÜ˜HÓ%Ð%ä˜'Ð#8Ø¨Ø"Ð$JÐKñ;ó ð øô ×Ñò Ü�gÐ4Ø UØÐ <Ð=ñ7
ó ò 	ðús   ÃA3E ÅE Å&FÆFc                 ó   — t        | d«      S )zGET /einstellungen.r\   )r   r   s    r   Úeinstellungen_viewrl   Ó   s   € ô �'Ð/Ó0Ð0r   ÚreuidÚ	nutzer_idc           
      ó@  — ddl m} ddlm} ddlm} |j                  j                  d«      j                  |¬«      j                  «       } ||g|gd¬«      }|r|d	   nd
}|j                  j                  ||¬«      j                  «       }	t        | d||	|||dœ«      S )z,GET /nutzerdaten/reu/<reuid>/nu/<nutzer_id>/r   )ÚRealEstateUnit)ÚReuMietV)Úlade_verhaeltnisseÚREID)ÚREUIDF)Úpersonen_idsÚreuidsÚ
nur_aktiveéÿÿÿÿN)rt   ÚMieterIDznutzerdaten.html)ÚreuÚmietvÚverhaeltnisrm   rn   )Úapp_real_estate.modelsrp   Úapp_nutzer.modelsrq   Ú#core.services.nutzungsverhaeltnisserr   r1   Úselect_relatedr2   r7   r   )
r   rm   rn   rp   rq   rr   rz   Úverhaeltnisser|   r{   s
             r   Únuzterdaten_viewr‚   à   s­   € õ 6Ý*åFà
×
 Ñ
 ×
/Ñ
/°Ó
7×
>Ñ
>ÀUÐ
>Ó
K×
QÑ
QÓ
S€Cñ 'Ø�[¨%¨¸Uô€Mñ (5�- Ò#¸$€Kð ×Ñ×#Ñ#¨%¸)Ð#ÓD×JÑJÓL€Eä�'Ð-ØØØ"ØØñ0ó ð r   N)(Ú__doc__Údjango.shortcutsr   r   Údjango.contrib.authr   r   r   r   Údjango.contrib.auth.decoratorsr	   Údjango.contribr
   Údjango.utilsr   Údjango.views.decorators.httpr   Úapp_admin.mixinsr   rJ   r   r   Údjango.template.loaderr   r~   r   Úapp_admin.modelsr   Úcore.services.anmeldungenr   r   r9   r;   rU   ra   re   rj   rl   Úintr‚   © r   r   ú<module>r�      sÉ   ðñ÷ .ß UÓ UÝ 9Ý #Ý !Ý 5å 2Ý 3Ý 7Ý 3Ý "Ý &Ý =ò/ò#ðL Øñó ó ðò&'ðR Øñ&ó ó ð&ò>Tò(ð^ Øñ1ó ó ð1ð ð Sð °Sò ó ñr   