o
    Bg ,                     @   s   d dl 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
 e dZedd	 Zed
d Zedd Zedd ZdS )    N)messages)authenticate)login_required)redirect)CompanyUseraccount_loggerc              
   C   sR  |st d tj| ddd tdS z?| jj}tjj	||d}|j
r:t d|j d tj| ddd tdW S d	|_d
|_
|  t d|j d|j  W nJ tjyu   t d| d|j d tj| ddd td Y S  ty } zt dt|  tj| ddd tdW  Y d }~S d }~ww tj| ddd tdS )NMissing user_id in the request.danger
extra_tags/manage_company_useridcompanyUser z  is already inactive or deleted.z$User is already inactive or deleted.FTz# removed successfully from company User with id . does not exist or does not belong to company .7User does not exist or does not belong to this company.zError removing user: zError removing user.zUser deleted successfully.success)loggerwarningr   errorr   userr   r   objectsget
is_deletedname	is_activesaveinfoDoesNotExist	Exceptionstr)requestcompany_user_idr   user_to_removee r(   E/var/www/rescue_company/accounts/views/delete_update_company_users.pydelete_company_user   s6   

r*   c              
   C   s  | j dkrtd| j   tj| ddd tdS | jd}|s3td tj| d	dd tdS z| jj	}z
t
jj||d
}W n# tye } zt| tj| ddd tdW  Y d }~W S d }~ww | jd}| jd}| jd}| jd}| jd}	d| jv r| jdd }
|
dkrd|_|
dkrd|_|r||_|rt
jj|dj|d rtd|  tj| ddd tdW S ||_|rt
jj|dj|d rtd|  tj| ddd tdW S ||_|r| |_|	r|	|_|  td|j d|j  W nL t
jy3   td| d |j d! tj| ddd td Y S  ty[ } ztd"t|  tj| d#dd tdW  Y d }~S d }~ww tj| d$d%d tdS )&NPOSTInvalid request method: Invalid request method.r	   r
   r   user_idr   zMissing user_id.r   r   r   emailphoneroleaddressr   onToffF)r/   )r   zEmail already exists: zEmail already exists.)r0   zPhone number already exists: zPhone number already exists.r   z" updated successfully for company r   r   r   zError updating user: zError updating user.zUser updated successfully.r   )methodr   r   r   r   r   r+   r   r   r   r   r   r"   printr   r   filterexcludeexistsr/   r0   lowerr1   r2   r   r    r!   r#   )r$   r.   r   r   r'   r   r/   r0   r1   r2   r   r(   r(   r)   update_company_user3   s|   





r;   c              
   C   s  | j dkrtd| j   tj| ddd tdS | jd}| jd}| jd	}||ksEtd
 tj| d
dd tdt| S |rI|sZtd tj| ddd tdS z$| j	j
}tjj||d}|| |  td|j d|j  W nJ tjy   td| d|j d tj| ddd td Y S  ty } ztdt|  tj| ddd tdW  Y d }~S d }~ww tj| ddd tdS )Nr+   r,   r-   r	   r
   r   r.   passwordconfirm_passwordzPasswords do not matchz/staff_profile//Missing user_id or new_password in the request. Missing user_id or new_password.r   Password for user " changed successfully for company r   r   r   r   Error changing password: Error changing password.Password changed successfully.r   )r5   r   r   r   r   r   r+   r   r#   r   r   r   r   set_passwordr   r    r   r!   r"   )r$   r.   new_passwordr=   r   r   r'   r(   r(   r)   change_user_password   sB   



rG   c              
   C   s  | j dkrtd| j   tj| ddd tdS | jd}| jd}| jd	}| jd
}||kr|r:|sKtd tj| ddd tdS z:| jj	}t
jj||d}t| |j|drw|| |  td|j d|j  ntj| ddd tdW S W nJ t
jy   td| d|j d tj| ddd td Y S  ty } ztdt|  tj| ddd tdW  Y d }~S d }~ww tj| ddd tdS tj| ddd tdS )Nr+   r,   r-   r	   r
   r   r.   rF   r=   current_passwordr>   r?   r   )r/   r<   r@   rA   z+Current password do not match with databaser   r   r   r   rB   rC   rD   r   zPasswords do not match.)r5   r   r   r   r   r   r+   r   r   r   r   r   r   r/   rE   r   r    r   r!   r"   r#   )r$   r.   rF   r=   rH   r   r   r'   r(   r(   r)   change_user_password_self   sJ   



rI   )loggingdjango.contribr   django.contrib.authr   django.contrib.auth.decoratorsr   django.shortcutsr   accounts.modelsr   	getLoggerr   r*   r;   rG   rI   r(   r(   r(   r)   <module>   s    

%
N
,