U
    "c                     @   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g | j d| jj   }| jsftjj	|ddddddddgd| _| jsztj|d| _d| j_
| j| j_| j| j_| j| j_| j| j_| jjtj  d| j_| jD ]}tjj	|| j|  d}|stj| j| d d}| j|  D ]"\}}t||rt||| q|jrH|  | jj| qt| jjD ]^}| ddg |jrd|jr|jj| jjkrqd|jrd|j| jkrd| jj| qd| jjtj  | jj sdddddd| j_ | jj!j"dk| jj d < | jj | j_ | jj!  d| _#| jdd! d"S )#uP   
        Создание/обновление пользователя
        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_name@ext_idrg_member_ofauth_options
user_localdoes_not_workemail	last_name
first_name)loginr   )r   TF)r   r   name)r   auth_plugin)
allow_ldapZ
allow_baseZadmin_allow_baseZallow_gmailZallow_yandexZCmfAuthLdapPluginr   )Z	only_dataN)$load_fieldsr   r   domainlowerstrippersonmodelsZ	CmfPersongetr   r   r   r   r   r   appendCmfPersonGroupZ
user_groupr   r	   keysitemshasattrsetattr
is_changedsavelistidr   remove
ldap_groupr   value
class_namedirty)selfr   r   groupkeyr*    r0   1./modules/settings/models/cmf_auth_plugin_data.pyprocess_person   sv              





"
  
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__r0   r1   r4   A   s    z%CmfAuthPluginData.save_preload_fieldsr   Tdepthnotifyemitc                   s>   | j r| j | _| j r$| jjr$|   t j||||d|S )Nr7   )r$   r,   r   Z	auto_syncr2   r3   r%   )r-   r8   r9   r:   argskwargsr5   r0   r1   r%   E   s
    zCmfAuthPluginData.saveF)forcec                   s   |  dddg | jrp| jjs<| jjd| j  d| j_tj	 }|| jj
kr`| jj
| | j  d | _t j|d|i|S )Nzperson.does_not_workr   r   u    Блокируем учетку Tr=   )r   r   Zis_adminr   loggerinfor   r   r   r)   r   r(   r%   r3   delete)r-   r=   r;   r<   Zldap_grpr5   r0   r1   r@   L   s    

zCmfAuthPluginData.delete)__name__
__module____qualname__r2   r4   r%   r@   __classcell__r0   r0   r5   r1   r      s   :r   N)Zcmfr   Zcmf.includeZmodules.settings.fieldsr   r   r0   r0   r0   r1   <module>   s   