B
    È„g%  ã               @   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l*m+Z+ d dl,Z,dd„ Z-dd„ Z.edd„ ddd�dd„ ƒZ/dd„ Z0ed d„ ddd�d!d"„ ƒZ1ed#d$�d%d&„ ƒZ2ed#d$�d'd(„ ƒZ3ed)d„ d#dd�d*d+„ ƒZ4d,d-„ Z5d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)ÚOrder)ÚCartNc             C   s€   t ƒ }ytt|ƒƒ}|jj|d�}W n   d }Y nX |d k	rlt ||¡rld|_| ¡  t	 
| d¡ tdƒS t	 | d¡ tdƒS )N)ÚpkTuH   DziÄ™kujemy za weryfikacjÄ™ adresu e-mail. Teraz moÅ¼esz siÄ™ zalgowaÄ‡.zusers:loginu    NieprawidÅ‚owy link aktywacyjny!zusers:profile)r   r   r   ÚobjectsÚgetr   Úcheck_tokenÚ	is_activeÚsaver   Úsuccessr   Úerror)ÚrequestÚuidb64ÚtokenÚUserÚuidÚuser© r,   ú(/var/www/pobierzsterownik/users/views.pyÚactivate   s    
r.   c             C   s†   d}t d|jt| ƒjtt|jƒƒt |¡|  	¡ r4dnddœƒ}t
|||gd�}| ¡ rnt | td||d�¡ n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.)r4   )r   Úusernamer   r1   r   r   r   r   Ú
make_tokenÚ	is_securer   Úsendr   r$   r   r%   )r&   r+   Úto_emailZmail_subjectÚmessager4   r,   r,   r-   ÚactivateEmail+   s    r;   c             C   s   | j  S )N)Úis_authenticated)r+   r,   r,   r-   Ú<lambda><   ó    r=   zusers:profile)Ú	login_urlÚredirect_field_namec             C   sì   y| j d }W n   d}Y nX | jjr0t|ƒS | jdkrÒ| jd }| jd }t| ||d�}|d k	r¼|jr¼t| |ƒ |j	j
}|r´t |¡}t| ƒ}x | ¡ D ]\}}	| ||	¡ qœW t|ƒS t | d¡ tdƒS ntƒ }
t| d	d
|
iƒS d S )NÚnextz/users/profileÚPOSTr5   Úpassword)r5   rC   uD   Nazwa uÅ¼ytkownika lub hasÅ‚o sÄ… nieprawidÅ‚owe! SprÃ³buj ponownie.zusers:loginzusers/login.htmlÚform)ÚGETr+   r<   r   ÚmethodrB   r   r"   r   ÚprofileÚold_cartÚjsonÚloadsr   ÚitemsÚdb_addr   r%   r   r   r   )r&   Ú	next_pager5   rC   r+   Z
saved_cartZconverted_cartÚcartÚkeyÚvalueZ	LoginFormr,   r,   r-   Ú
login_view<   s.    






rQ   c             C   s$   | j jrt | d¡ t| ƒ tdƒS )Nu   PomyÅ›lnie wylogowano.zusers:login)r+   r<   r   r$   r   r   )r&   r,   r,   r-   Úlogout_viewZ   s    rR   c             C   s   | j  S )N)r<   )r+   r,   r,   r-   r=   b   r>   c             C   sv   | j dkr`t| jƒ}| ¡ rR|jdd�}d|_| ¡  t| ||j d¡ƒ t	dƒS t
 | d¡ ntƒ }t| dd|iƒS )	NrB   F)Úcommitr4   zusers:loginu   BÅ‚Ä…d w formularzu.zusers/register.htmlrD   )rF   r   rB   Úis_validr#   r"   r;   Úcleaned_datar    r   r   Úwarningr   )r&   ZRegisterFormr+   r,   r,   r-   Úregister_viewb   s    

rW   zusers:login)r?   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Údate)r+   z-dateÚpager   é   zusers/profile.html)ZuserNameÚorders)r+   Úis_staffr   r   ÚallÚorder_byÚfilterrE   r    r   rY   r   Ú
first_name)r&   r[   rY   Ú	paginatorr,   r,   r-   Úprofile_viewt   s    

rb   c             C   s„   | j }| jdkrlt|| jƒ}| ¡ r`| ¡  t| |j| jd d�}t| |ƒ t	 
| d¡ tdƒS t	 | d¡ t|ƒ}t| dd|iƒS )	NrB   Únew_password1)r5   rC   u   HasÅ‚o zostaÅ‚o zmienionezusers:profileu   BÅ‚Ä…d w formularzu.zusers/password_change.htmlrD   )r+   rF   r   rB   rT   r#   r   r5   r   r   r$   r   rV   r   )r&   r+   ÚPasswordChangeFormr,   r,   r-   Úpassword_change_view‚   s    

re   c             C   s   | j  S )N)r<   )r+   r,   r,   r-   r=   ”   r>   c       	      C   s  | j dkrüt| jƒ}| ¡ r¾|jd }tƒ j t|d�¡ 	¡ }|r¶d}t
d|t| ƒjtt|jƒƒt |¡|  ¡ rtdnddœƒ}t|||jgd	�}| ¡ rªt | td
ƒ¡ nt | d¡ tdƒS x<t|j ¡ ƒD ]*\}}|dkrÎ|d dkrÎt | d¡ qÎqÎW tƒ }t| dd|iƒS )NrB   r4   )r4   u   Reset hasÅ‚az!users/reset_password_message.htmlr/   r0   )r+   r1   r*   r(   r2   )r3   u3   WysÅ‚ano wiadomoÅ›Ä‡ z linkiem resetujÄ…cym hasÅ‚o.u   BÅ‚Ä…d wysyÅ‚ania wiadomoÅ›cizusers:loginZcaptchar   zThis field is required.u    Musisz przejÅ›Ä‡ test ReCaptcha!zusers/password_reset.htmlrD   )rF   r   rB   rT   rU   r   r   r_   r   Úfirstr   r   r1   r   r   r   r   r6   r7   r   r4   r8   r   r$   r   r%   r   ÚlistÚerrorsrK   r   )	r&   rD   Ú
user_emailZassociated_userÚsubjectr:   r4   rO   r%   r,   r,   r-   Úpassword_reset_view”   s0    


rk   c             C   sæ   t ƒ }ytt|ƒƒ}|jj|d�}W n   d }Y nX |d k	rÆt ||¡rÆ| jdkr®t|| j	ƒ}| 
¡ rŠd|_| ¡  t | d¡ tdƒS x"t|j ¡ ƒD ]}t | |¡ qšW t|ƒ}t| dd|iƒS t | d¡ t | d	¡ tdƒS )
N)r   rB   Tu?   Twoje hasÅ‚o zostaÅ‚o zmienione. Teraz moÅ¼esz siÄ™ zalogowaÄ‡.zusers:loginzusers/password_reset.htmlrD   u   Link wygasÅ‚.u   BÅ‚Ä…d. Przekierowanie...)r   r   r   r   r    r   r!   rF   r   rB   rT   r"   r#   r   r$   r   rg   rh   Úvaluesr%   r   )r&   r'   r(   r)   r*   r+   rD   r%   r,   r,   r-   ÚpasswordResetConfirmµ   s*    

rm   )6Ú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   Z	main.cartr   rI   r.   r;   rQ   rR   rW   rb   re   rk   rm   r,   r,   r,   r-   Ú<module>   s4   !