a
    &c%                     @   s   d dl mZ d dlmZmZ d dlmZ d dlmZ	 d dl
mZmZmZ d dlmZ d dlmZ dd	lmZ dd
lT d d
lT G dd deZG dd deeZG dd deZG dd deZG dd deZdd ZdS )    )View)renderredirect)JsonResponse)gettext_lazy)authenticateloginlogout)LoginRequiredMixin)get_current_site   )User)*c                   @   s   e Zd Zdd Zdd ZdS )	LoginViewc                 O   s(   |j jrtdS d}ddi}t|||S )Nlanding:indexzaccounts/signin.htmlmessage )useris_authenticatedr   r   selfrequestargskwargstemplatecontext r   SC:\Users\brahi\OneDrive\Desktop\New folder (10)\UseVoice\src\apps\accounts\views.pyget   s
    zLoginView.getc           	      O   s   |j js|jd}|jd}|jd}i }|r|rtjj|d }|r||sbddd}t	|||d}|d ur|j
sd	d
d}t|S |s|jd d|j_t|| ddd}t|S n
ddd}t|S d S )Nemailpasswordremember_mer   errorz=Password is incorrect. Kindly Try Again With A Valid Passwordresultr   )r   r    infozYSorry, your account is in-Active, Check Your Email For Activation Link Or Contact Supportr   TsuccesszYou are logged in.:Email does not exist. Kindly Try Again With A Valid Email.)r   r   POSTr   r   objectsfilterfirstcheck_passwordr   	is_activer   sessionZ
set_expirymodifiedr   )	r   r   r   r   r   r    r!   responser   r   r   r   post   s.    






zLoginView.postN__name__
__module____qualname__r   r2   r   r   r   r   r      s   r   c                   @   s   e Zd Zdd ZdS )
LogoutViewc                 O   s   t | | jj  tdS )Nr   )r	   r   r/   flushr   )r   r   r   r   r   r   r   r   >   s    zLogoutView.getNr4   r5   r6   r   r   r   r   r   r7   =   s   r7   c                   @   s   e Zd Zdd Zdd ZdS )RegistrationViewc           	      O   sp   |j jrtdS d }d }z|jd }tjj|d}W n  tp@tjyT   td Y S 0 ||d}d}t	|||S )Nr   planZplan_id__iexact)plan_objr   zaccounts/signup.html)
r   r   r   r/   Planr*   r   KeyErrorDoesNotExistr   )	r   r   r   r   r=   r   plan_idr   r   r   r   r   r   D   s    
zRegistrationView.getc           	      O   s  d }d|j v r|j d|jvr|j d|jd< z0tjj|jd d r`ddd}t|W S W n& tjy   ddd}t| Y S 0 t	jj|j d	d

 rddd}t	 }|j d|_|j d|_|j d|j |_|j d	|_t|j d|_d|_|  t|t| t }d|j v rN|j d|_|j d|_|  tjj|jd d}t }||_||_||_d|_d|_|  dd|j dd}|jd= t|S )NZ
membershipr;   r<   zFound SuccesszMembership ID Found Successr$   z	Not FoundzPlease Select Plan Correctlyr   r"   r#   z8Email already used. Kindly Try Again With Another Email.
first_name	last_name r    FZOrderIDZConversationID)rA   Tr'   z$You are signed up. Check your email z to activate your account.)r)   r   r/   r>   r*   r+   existsr   r@   r   r,   rB   rC   usernamer   make_passwordr    r.   saveZsend_activation_emailr   PaymenttransactionIDconversationIDSubscriptionr;   r   paymentpaid_status)	r   r   r   r   r1   Znew_userZnew_paymentZplan_instanceZnew_subscriptionr   r   r   r2   [   s\    
zRegistrationView.postNr3   r   r   r   r   r:   C   s   r:   c                   @   s   e Zd Zdd Zdd ZdS )PasswordResetViewc                 O   s   d}ddi}t |||S )Nzaccounts/reset_password.htmlr   r   r   r   r   r   r   r      s    zPasswordResetView.getc                 O   s`   |j js\tjj|jdd }|rJt|t	| dd|j
 dd}n
ddd}t|S d S )	Nr   r"   r'   zCheck your email z to Reset Your Passwor.r$   r#   r(   )r   r   r   r*   r+   r)   r   r,   Zsend_password_reset_emailr   r   r   )r   r   r   r   r   r1   r   r   r   r2      s    
zPasswordResetView.postNr3   r   r   r   r   rO      s   rO   c                   @   s   e Zd Zdd ZdS )PasswordChangeViewc                 O   s   d}ddi}t |||S )Nzaccounts/password_change.htmlr   r   rP   r   r   r   r   r      s    zPasswordChangeView.getNr9   r   r   r   r   rQ      s   rQ   c              
   C   s   zt j|tjdgd}W n0 t jyH   t| d t| d d }Y n0 |d urzRtj	j
|d d}|d ur|jrt| d n d|_d|_|  t| d	 W nB tjy   t| d
 Y n$ tttfy   t| d Y n0 tdS )NHS256)
algorithmszToken has expired .zNWe Will ReSend You An Activation Email To Your Email. Please Check Your Email.id)rT   zYour account is already active.Tz Your account has been activated.zThe user does not exist.zActivation link is Invalid!zaccounts:signin)jwtdecodesettings
SECRET_KEYExpiredSignatureErrormessagesr#   r&   r   r*   r   r.   is_verifiedrH   r@   	TypeError
ValueErrorOverflowErrorr   )r   tokenZ
token_infor   r   r   r   activate   s*    
r`   N)django.viewsr   django.shortcutsr   r   django.httpr   django.utils.translationr   _django.contrib.authr   r   r	   Zdjango.contrib.auth.mixinsr
   django.contrib.sites.shortcutsr   modelsr   utilsZapps.subscriptions.modelsr   r7   r:   rO   rQ   r`   r   r   r   r   <module>   s   .Z