o
    …ug°#  ã                   @   s~  d dl mZ d dlmZmZ d dlmZmZmZm	Z	 d dl
mZmZ d dlmZ d dlmZ d dl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m Z  d dl!m"Z"m#Z# d dl$m%Z% d dl&m'Z' d dl(m)Z) dd„ Z*dd„ Z+edd„ ddd�dd„ ƒZ,dd„ Z-edd„ ddd�d d!„ ƒZ.ed"d#�d$d%„ ƒZ/ed"d#�d&d'„ ƒZ0ed(d„ d"dd�d)d*„ ƒZ1d+d,„ Z2dS )-é    )ÚHttpResponseRedirect)ÚrenderÚredirect)ÚauthenticateÚloginÚlogoutÚget_user_model)Úlogin_requiredÚuser_passes_test)Úmessages)Úget_current_site)Úformat_htmlé   )ÚCustomLoginFormÚCustomRegisterFormÚCustomPasswordChangeFormÚCustomPasswordResetForm)ÚQ)Ú	Paginator)Úaccount_activation_token)Úforce_bytesÚ	force_str)Úurlsafe_base64_encodeÚurlsafe_base64_decode)Úrender_to_string)ÚEmailMessage)ÚOrderc                 C   s|   t ƒ }ztt|ƒƒ}|jj|d�}W n   d }Y |d ur4t ||¡r4d|_| ¡  t	 
| d¡ tdƒS t	 | d¡ tdƒS )N©ÚpkTuH   DziÄ™kujemy za weryfikacjÄ™ adresu e-mail. Teraz moÅ¼esz siÄ™ zalgowaÄ‡.úusers:loginu    NieprawidÅ‚owy link aktywacyjny!úusers:profile)r   r   r   ÚobjectsÚgetr   Úcheck_tokenÚ	is_activeÚsaver   Úsuccessr   Úerror)ÚrequestÚuidb64ÚtokenÚUserÚuidÚuser© r.   ú&I:\VCS\pobierzsterownik\users\views.pyÚactivate   s   r0   c                 C   sˆ   d}t d|jt| ƒjtt|jƒƒt |¡|  	¡ rdnddœƒ}t
|||gd�}| ¡ r8t | td||d�¡ d S t | td	|d
�¡ d S )NzAktywuj swoje kontoz#users/activate_account_message.htmlÚhttpsÚhttp©r-   Údomainr,   r*   Úprotocol©Útouº   Zarejestrowano uÅ¼ytkownikia <strong>{user_name}</strong>. SprawdÅº e-mail: <b>{email}</b> i kliknij w link w wiadomoÅ›ci w celu aktywacji konta. <b>Uwaga:</b> SprawdÅº folder ze spamem.)Z	user_nameÚemailu[   WystÄ…piÅ‚ problem z wysÅ‚aniem wiadomoÅ›ci na e-mail: {email}, sprawdÅº czy jest poprawny.©r8   )r   Úusernamer   r4   r   r   r   r   Ú
make_tokenÚ	is_securer   Úsendr   r&   r   r'   )r(   r-   Úto_emailZmail_subjectÚmessager8   r.   r.   r/   ÚactivateEmail)   s   ûr@   c                 C   ó   | j  S ©N©Úis_authenticated©r-   r.   r.   r/   Ú<lambda>:   ó    rF   r    N)Ú	login_urlÚredirect_field_namec                 C   s¢   z| j d }W n   d}Y | jjrt|ƒS | jdkrF| jd }| jd }t| ||d�}|d ur<|jr<t| |ƒ t|ƒS t	 
| d¡ tdƒS tƒ }t| d	d
|iƒS )NÚnextz/users/profileÚPOSTr:   Úpassword©r:   rL   uD   Nazwa uÅ¼ytkownika lub hasÅ‚o sÄ… nieprawidÅ‚owe! SprÃ³buj ponownie.r   zusers/login.htmlÚform)ÚGETr-   rD   r   ÚmethodrK   r   r$   r   r   r'   r   r   r   )r(   Ú	next_pager:   rL   r-   Z	LoginFormr.   r.   r/   Ú
login_view:   s"   



rR   c                 C   s$   | j jr
t | d¡ t| ƒ tdƒS )Nu   PomyÅ›lnie wylogowano.r   )r-   rD   r   r&   r   r   )r(   r.   r.   r/   Úlogout_viewR   s   rS   c                 C   rA   rB   rC   rE   r.   r.   r/   rF   Z   rG   c                 C   sv   | j dkr0t| jƒ}| ¡ r)|jdd�}d|_| ¡  t| ||j d¡ƒ t	dƒS t
 | d¡ ntƒ }t| dd|iƒS )	NrK   F)Úcommitr8   r   õ   BÅ‚Ä…d w formularzu.zusers/register.htmlrN   )rP   r   rK   Úis_validr%   r$   r@   Úcleaned_datar"   r   r   Úwarningr   )r(   ZRegisterFormr-   r.   r.   r/   Úregister_viewZ   s   

rY   r   )rH   c                 C   sh   | j jrtj ¡  d¡}ntjj| j d� d¡}| j dd¡}t	|dƒ}| 
|¡}t| d| j j|dœƒS )NÚdaterE   Úpager   é   zusers/profile.html)ZuserNameÚorders)r-   Úis_staffr   r!   ÚallÚorder_byÚfilterrO   r"   r   r[   r   Ú
first_name)r(   r]   r[   Ú	paginatorr.   r.   r/   Úprofile_viewl   s   

rd   c                 C   s„   | j }| jdkr6t|| jƒ}| ¡ r0| ¡  t| |j| jd d�}t| |ƒ t	 
| d¡ tdƒS t	 | d¡ t|ƒ}t| dd|iƒS )	NrK   Únew_password1rM   u   HasÅ‚o zostaÅ‚o zmienioner    rU   zusers/password_change.htmlrN   )r-   rP   r   rK   rV   r%   r   r:   r   r   r&   r   rX   r   )r(   r-   ÚPasswordChangeFormr.   r.   r/   Úpassword_change_viewz   s   

rg   c                 C   rA   rB   rC   rE   r.   r.   r/   rF   Œ   rG   c           	      C   s  | j dkrt| jƒ}| ¡ rb|jd }tƒ j t|d�¡ 	¡ }|r^d}t
d|t| ƒjtt|jƒƒt |¡|  ¡ r:dnddœƒ}t|||jgd	�}| ¡ rXt | td
ƒ¡ tdƒS t | d¡ tdƒS t|j ¡ ƒD ]\}}|dkr~|d dkr~t | d¡ qiqitƒ }t| dd|iƒS )NrK   r8   r9   u   Reset hasÅ‚az!users/reset_password_message.htmlr1   r2   r3   r6   u3   WysÅ‚ano wiadomoÅ›Ä‡ z linkiem resetujÄ…cym hasÅ‚o.u   BÅ‚Ä…d wysyÅ‚ania wiadomoÅ›cir   Zcaptchar   zThis field is required.u    Musisz przejÅ›Ä‡ test ReCaptcha!úusers/password_reset.htmlrN   )rP   r   rK   rV   rW   r   r!   ra   r   Úfirstr   r   r4   r   r   r   r   r;   r<   r   r8   r=   r   r&   r   r'   r   ÚlistÚerrorsÚitemsr   )	r(   rN   Ú
user_emailZassociated_userÚsubjectr?   r8   Úkeyr'   r.   r.   r/   Úpassword_reset_viewŒ   s6   


ûþ€rp   c                 C   sÞ   t ƒ }ztt|ƒƒ}|jj|d�}W n   d }Y |d ur_t ||¡r_| jdkrSt|| j	ƒ}| 
¡ rCd|_| ¡  t | d¡ tdƒS t|j ¡ ƒD ]}t | |¡ qJt|ƒ}t| dd|iƒS t | d¡ t | d	¡ tdƒS )
Nr   rK   Tu?   Twoje hasÅ‚o zostaÅ‚o zmienione. Teraz moÅ¼esz siÄ™ zalogowaÄ‡.r   rh   rN   u   Link wygasÅ‚.u   BÅ‚Ä…d. Przekierowanie...)r   r   r   r!   r"   r   r#   rP   r   rK   rV   r$   r%   r   r&   r   rj   rk   Úvaluesr'   r   )r(   r)   r*   r+   r,   r-   rN   r'   r.   r.   r/   ÚpasswordResetConfirm­   s*   
rr   )3Údjango.httpr   Údjango.shortcutsr   r   Údjango.contrib.authr   r   r   r   Údjango.contrib.auth.decoratorsr	   r
   Údjango.contribr   Údjango.contrib.sites.shortcutsr   Údjango.utils.htmlr   Úformsr   r   r   r   Údjango.db.models.query_utilsr   Údjango.core.paginatorr   Útokensr   Údjango.utils.encodingr   r   Údjango.utils.httpr   r   Údjango.template.loaderr   Údjango.core.mailr   Zmain.modelsr   r0   r@   rR   rS   rY   rd   rg   rp   rr   r.   r.   r.   r/   Ú<module>   s<    




 