U
    ^]e$                     @   s6   d dl mZ d dlT d dlmZ G dd dejZdS )    )fields)*)cmf_auth_plugin_datac                       sL   e Zd Zdd Z fddZdddd fdd	
Zd
d fdd
Z  ZS )CmfAuthPluginDatac                 C   sl  |  ddddddddd	d
dddddg | j}| jj}| jdd  d| jj }|  }ddddddddg}tj	
 }| jstjj||d}|r||jkr|| _n*| jjr| jjd| j  | jj  | jsV| jrVtjj| j|d}t|dkr| jjd| j  n:|rV|d }|rV||jkrV| jjd|  || _| js| jrtjj| j|d }t|dkr| jjd!| j  n:|r|d }|r||jkr| jjd"|  || _| jstj|d#| _| jj|kr| jjd$| jj d%| d& d'| j_| j| j_| j| j_| j| j_| j| j_| jjD ]}| jj| qTd(| j_|| j_| j | j_ | j!D ]}d)| d)}	tj	jdd*d+|	 d+g| j!| " d,}
|
stj	jd-d.| j!| d- g| j!| " d,}
|
stj	| j!| d- |	d/}
|
j#$ s$|	|
_#|	|
j#kr@|
j# |	 |
_#| j!| % D ]0\}}|dkrdqNt&|
|rNt'|
|| qN|
j(r|
)  | jj|
 qt| jjD ]}
|
 dd0g |
jr|
jr|
jj*| jj*krq|
j#rd(}| j!D ]}||
j#krd'}q|s| jj+|
 t,d1|
  q| jjtj	
  | jj)  d(| _-| j)d'd2 d3S )4uP   
        Создание/обновление пользователя
        r   zauth_plugin.domainperson.user_localperson.rg_member_of.ext_idzperson.loginperson.rg_member_ofzperson.namezperson.auth_optionsgroupszperson.emailzperson.last_namezperson.first_namezperson.employee_numberzauth_plugin.default_groupszperson.cmf_deleted@r   ext_idrg_member_ofZauth_options
user_localdoes_not_workemail	last_name
first_name)loginr   u?   Пользователь удален - восстановим )r   r      u7   Несколько пользователей с email u/   Нашли пользователя по email )namer   u6   Несколько пользователей с name u4   Нашли пользователя по имени )r   u8   login пользователя не совпадает! z != u   .Возможно неправильно указан домен в настройках. Удалите пользователя или исправьте настройки.TFz::ZLIKE%)filterr   r   z==)r   r   auth_pluginzRemove group )Z	only_dataN).load_fieldsr   valuesplitr   domainlowerstripmodelsCmfPersonGroup
ldap_grouppersonZ	CmfPersongetr   Zcmf_deletedloggerinfoZrestorer   listlenwarnr   errorr   r   r   Zdefault_groupsappendr   	ext_loginZemployee_numberr	   keysr   loaditemshasattrsetattr
is_changedsaveidremoveprintdirty)selfr*   r   _fieldsldap_grpr!   ZpersonsgrpZgroup_idr   groupkeyr   Z	gr_existsZ	_group_id r<   1./modules/settings/models/cmf_auth_plugin_data.pyprocess_person   s                 
 




(
"
z CmfAuthPluginData.process_personc                    s   t   dddddg S )Nr   r   r   r5   zauth_plugin.auto_sync)supersave_preload_fields)r6   	__class__r<   r=   r@   u   s    z%CmfAuthPluginData.save_preload_fieldsr   Tdepthnotifyemitc                   s>   | j r| j | _| jr$| jjr$|   t j||||d|S )NrC   )r0   r5   r   Z	auto_syncr>   r?   r1   )r6   rD   rE   rF   argskwargsrA   r<   r=   r1   y   s
    zCmfAuthPluginData.saveF)forcec                   s   |  dddddg | jrv| jjs@| jjd| j  d| j_tj	 }|| jj
krd| jj
| | jj  d | _t j|d|i|S )	Nzperson.does_not_workr   r   zperson.is_adminzperson.is_supportu    Блокируем учетку TrI   )r   r!   Zis_adminr   r#   r$   r   r   r   r    r   r3   r   r1   r?   delete)r6   rI   rG   rH   r8   rA   r<   r=   rJ      s    
zCmfAuthPluginData.delete)__name__
__module____qualname__r>   r@   r1   rJ   __classcell__r<   r<   rA   r=   r      s   nr   N)Zcmfr   Zcmf.includeZmodules.settings.fieldsr   r   r<   r<   r<   r=   <module>   s   