U
    mc                     @   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sZtjj	|dddddgd| _| jsnt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}|stj| j| d d}| j|  D ]"\}}t||rt||| q|jr:|  | jj| qt| jjD ]^}| ddg |jrV|jr|jj| jjkrqV|jrV|j| jkrV| jj| qV| 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groups@ext_idrg_member_ofauth_options
user_localdoes_not_work)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   	last_nameZ
first_nameZemailZemail2r   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(    r.   1./modules/settings/models/cmf_auth_plugin_data.pyprocess_person   sj          





"
  
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/   r2   ?   s    z%CmfAuthPluginData.save_preload_fieldsr   Tdepthnotifyemitc                   s@   | j jr| j| _| jr&| jjr&|   t j||||d|S )Nr5   )r+   r"   r*   r   Z	auto_syncr0   r1   r#   )r+   r6   r7   r8   argskwargsr3   r.   r/   r#   C   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#   r1   delete)r+   r;   r9   r:   Zldap_grpr3   r.   r/   r>   J   s    

zCmfAuthPluginData.delete)__name__
__module____qualname__r0   r2   r#   r>   __classcell__r.   r.   r3   r/   r      s   8r   N)Zcmfr   Zcmf.includeZmodules.settings.fieldsr   r   r.   r.   r.   r/   <module>   s   