B
    c!                 @   s$  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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mZ 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# d dl$m%Z% G dd dej#Z&G dd deZ'G dd de"j(Z)G dd de#Z*dS )    )messages)update_session_auth_hash)PermissionDenied)JsonResponse)TemplateResponse)gettext_lazygettext)settings)activate)admin)helpers)GeneralActionDeleteActionHandleError)IS_POPUP_VAR)log_operationexport_error_dict)AdminPasswordChangeForm)escape)formsZKModelAction)logoffc               @   sF   e Zd ZedZedZdZedZeZ	dZ
dZdddZdd	 Zd
S )ChangePasswordZuser_action_changePasswordz$admin/auth/user/change_password.htmlZ&user_action_changePasswordConfirmationT c             C   s  ddl m} ddlm} ddlm} | j}| j}d }| jr\| j	rV| j
d }| j }n| j
}| j|slt|d kr|td||jjjt|d |jj|jj|d}	|	jdkrttd	d
dS ttddrddlm}
 | jjjdkr|
dS |jdkr"| ||j }t!d |" ry|#  W nJ t$k
rx } z*t%|||| j&t'| tt'|d
dS d }~X Y nX |(||d }|)||| dtd }t*+|| t,||j t%|||| j&| |jj-|j dkrt.| tddiS t%|||| j&d td
t/|j0dS n
| |}d dt1|j2ifg}t34||i }t5|dkr`d}td|||t6|j kpt6|j7kddddd|jj|ddd}|8|j9:| |j9j;|_<t=|| j>pd|S )Nr   )Http404)	force_str)
Membershipz8%(name)s object with primary key %(key)r does not exist.)namekey)
company_iduser   z#Vendor's password  can't be change.)msgcodeDEMO)HttpResponsedemoz+The demo system password  can't be changed.POSTZenz%sZ'user_actionChangePassword_successReturnidr#   Zfailed)r#   r"   ZfieldsZpassword_changeZ#user_actionChangePasswordForm_titleTF)title	adminFormform_urlformZis_popupaddZchangeZhas_delete_permissionhas_change_permissionZhas_absolute_urlZoptsZoriginalZsave_asZ	show_savez$admin/auth/user/change_password.html)?django.httpr   Zdjango.utils.encodingr   mysite.base.modelsr   r   requestbatch_selectunique_object_requiredZobj_idsobjectsfirstr.   r   _ZmodelZ_metaverbose_namer   getr   current_companyZroler   getattrr	   Zdjango.http.responser%   usernamemethodaction_formr'   r
   is_validsave
ValueErrorr   short_descriptionstrZconstruct_change_messageZ
log_changer   successr   r(   r   r   errorslistZbase_fieldsdefined_helpersZZKAdminFormlenr   ZGETupdateZ
admin_siteZeach_contextr   Zcurrent_appr   action_template)selfr+   r   r   r   thatr1   r   Z_idZ
membershipr%   r,   eZchange_messager"   Z	fieldsetsr*   context rN   ;G:\easytimepro\master/mysite/base\actions\myuser_actions.pyresponse_action&   s    


 

zChangePassword.response_actionc             C   s   | j | j| jdS )N)r1   )rP   r   r1   )rJ   rN   rN   rO   action   s    zChangePassword.actionN)r   )__name__
__module____qualname__r6   r7   rA   rI   Zconfirmationr   r=   r2   r3   rP   rQ   rN   rN   rN   rO   r      s   
Yr   c                   s   e Zd Z fddZ  ZS )
UserDeletec       
         sz  ddl m}m} ddlm} i }g }x4| jD ](}|jp>|j}|dkrVtd||< n| j	j
|krntd||< ttddr| j	j
jdkrtd	||< ||d
s.tjr |j| j	j
jkr|jj|| j	j
jd  n|jj|| j	j
jd  |j j|jd}xT|D ]}	|	j| qW q.|jj|d  |j }x|D ]}	|	j| qBW q.W tjsvtt| j|d d S )Nr   )r   GroupProfile)MyUser   Zdelete_default_user_alertZdelete_user_self_alertr$   r&   z3you have not permission to delete about demo systemr   )r(   r9   )r   r   )Zcompany__id)r   )remove_denied)r0   r   rV   mysite.accounts.modelsrW   r4   r(   Zpkr6   r1   r   r:   r	   r;   r8   ZCLOUD_VERSIONr9   deleteZgroupprofile_setallfilterZ
group_userremovesuperrU   rQ   )
rJ   r   rV   rW   rY   Zother_company_userobjZobj_idZgroup_profilesZprofile)	__class__rN   rO   rQ      s6    


zUserDelete.action)rR   rS   rT   rQ   __classcell__rN   rN   )ra   rO   rU      s   rU   c               @   s0   e Zd ZejedddZejedddZdS )CloudUserAddFormz	User NameT)labelrequiredZEmailN)	rR   rS   rT   r   Z	CharFieldr6   r;   Z
EmailFieldemailrN   rN   rN   rO   rc      s   rc   c               @   s0   e Zd ZedZedZedZeZdd Z	dS )CloudUserAddzInvite Userc             O   s   ddl m} ddlm} ddlm} t| jj}|	 r|j
d }|j
d }|jj|d}	|	 rnttd||||d	d
}
|
d |
  || jjj|
d  || j| d S )Nr   )rW   )r   )init_cloud_add_user_emailr;   rf   )rf   zemail exists alreadyF)r;   rf   nicknameZis_staffZ123456)r   r   )rZ   rW   r0   r   Zmysite.base.utilsrh   rc   r1   r'   r>   Zcleaned_datar4   r]   existsr   r6   Zset_passwordr?   r   r9   )rJ   argskwargsrW   r   rh   r,   ri   rf   Ztmp_userr   rN   rN   rO   rQ      s    


zCloudUserAdd.actionN)
rR   rS   rT   r6   r7   rA   Zhelp_txtrc   r=   rQ   rN   rN   rN   rO   rg      s
   rg   N)+Zdjango.contribr   Zdjango.contrib.authr   Zdjango.core.exceptionsr   r/   r   Zdjango.template.responser   Zdjango.utils.translationr   r6   r   Zdjango.confr	   r
   mysiter   Zmysite.adminr   rF   Zmysite.admin.actionr   r   Zmysite.admin.kernelr   Zmysite.admin.utilsr   r   Z&mysite.base.admin.forms.auth_user_formr   Zmysite.utilsr   r   r   Zmysite.authurlsr   r   rU   ZZKActionFormrc   rg   rN   rN   rN   rO   <module>   s(   g'