U
    Vc                     @   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	g	 | j d
| jj   }| jsXtjj	|ddddgd| _| jsltj|d| _d| j_
| j| j_| j| j_| j| j_| j| j_| jjtj  | jD ]}tjj	|| j|  d}|stj| j| d d}| j|  D ]\}}t||rt||| q|jr,|  | jj| qt| jjD ]^}| ddg |jrH|jr|jj| jjkrqH|jrH|j| jkrH| jj| qHtjj	dd}|stjdd}|  | j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.loginzperson.rg_member_ofzperson.namezperson.auth_optionsgroups@ext_idrg_member_ofauth_options
user_local)loginr   )r   T)r
   r   name)r   auth_pluginu   LDAP пользователи)
allow_ldapZ
allow_baseZadmin_allow_baseZallow_gmailZallow_yandexZCmfAuthLdapPluginr   F)Z	only_dataN)#load_fieldsr   r   domainlowerstrippersonZmodelsZ	CmfPersongetr   r   	last_nameZ
first_nameZemailZemail2r   appendZCmfPersonGroupZ
user_groupr   keysitemshasattrsetattr
is_changedsavelistidr
   remover   value
class_namedirty)selfr   r
   groupkeyr#   Z
base_group r)   1./modules/settings/models/cmf_auth_plugin_data.pyprocess_person   sn         






"
  
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*   r-   B   s    z%CmfAuthPluginData.save_preload_fieldsr   Tdepthnotifyemitc                   s8   | j | _| j r| jjr|   t j||||d|S )Nr0   )r   r%   r   Z	auto_syncr+   r,   r   )r&   r1   r2   r3   argskwargsr.   r)   r*   r   F   s    zCmfAuthPluginData.saveF)forcec                   s.   |  dg | jrd | _t j|d|i|S )Nr   r6   )r   r   r,   delete)r&   r6   r4   r5   r.   r)   r*   r7   L   s    zCmfAuthPluginData.delete)__name__
__module____qualname__r+   r-   r   r7   __classcell__r)   r)   r.   r*   r      s   ;r   N)Zcmfr   Zcmf.includeZmodules.settings.fieldsr   r   r)   r)   r)   r*   <module>   s   