U
    3d=                     @   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   s  |  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|| _| js&| jr&tjj| j|d}t|dkr| jjd| j  n:|r&|d }|r&||jkr&| jjd|  || _| js| jrtjj| j|d}t|dkrn| 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| q$d&| 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*}
|
stj	| j| d+ |	d-}
|
j!" s|	|
_!|	|
j!kr|
j! |	 |
_!| j| # D ]0\}}|dkr4qt$|
|rt%|
|| q|
j&r`|
'  | jj|
 qZt| jjD ]h}
|
 dd.g |
jr~|
jr|
jj(| jj(krq~|
j!r~|
j!d/d0 | jD kr~| jj)|
 q~| jjtj	
  | jj'  d&| _*| j'd%d1 d2S )3uP   
        Создание/обновление пользователя
        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_groups@r   ext_idrg_member_ofZauth_options
user_localdoes_not_workemail	last_name
first_name)loginr   )r   r      u7   Несколько пользователей с email u/   Нашли пользователя по email )namer   u6   Несколько пользователей с name u4   Нашли пользователя по имени )r   u8   login пользователя не совпадает! z != u   .Возможно неправильно указан домен в настройках. Удалите пользователя или исправьте настройки.TF::ZLIKE%)filterr   r   z==)r   r   auth_pluginc                 S   s   g | ]}d | d qS )r    ).0group_idr   r   1./modules/settings/models/cmf_auth_plugin_data.py
<listcomp>c   s     z4CmfAuthPluginData.process_person.<locals>.<listcomp>)Z	only_dataN)+load_fieldsr   valuesplitr   domainlowerstripmodelsCmfPersonGroup
ldap_grouppersonZ	CmfPersongetr   r   listlenloggerwarninfor   errorr   r   r   Zdefault_groupsappendr   	ext_loginZemployee_numberr	   keysr   loaditemshasattrsetattr
is_changedsaveidremovedirty)selfr0   r   _fieldsldap_grpr'   Zpersonsgrpr   r   groupkeyr   r   r   r   process_person   s                
 




(
" z CmfAuthPluginData.process_personc                    s   t   dddddg S )Nr   r   r   r:   zauth_plugin.auto_sync)supersave_preload_fields)r;   	__class__r   r   rC   k   s    z%CmfAuthPluginData.save_preload_fieldsr   Tdepthnotifyemitc                   s>   | j r| j | _| jr$| jjr$|   t j||||d|S )NrF   )r6   r:   r   Z	auto_syncrA   rB   r7   )r;   rG   rH   rI   argskwargsrD   r   r   r7   o   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    Блокируем учетку TrL   )r   r'   Zis_adminr   r+   r-   r   r$   r%   r&   r   r9   r   r7   rB   delete)r;   rL   rJ   rK   r=   rD   r   r   rM   v   s    
zCmfAuthPluginData.delete)__name__
__module____qualname__rA   rC   r7   rM   __classcell__r   r   rD   r   r      s   dr   N)Zcmfr   Zcmf.includeZmodules.settings.fieldsr   r   r   r   r   r   <module>   s   