U
    cf                     @   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   sp  |  ddddddddd	d
ddg | j 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  nB|r|d }|r||jkr| jjd|  || _	|| j	_| j	s| jrtj
j| j|d}t|dkrV| jjd| j  nB|r|d }|r||jkr| jjd|  || _	|| j	_| j	st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||rHt|||	 qH|jr||   | j	j| q t| j	jD ]^}| dd%g |jr|jr|jj!| jj!krҐq|j"r|j"| jkr| j	j#| q| j	jtj  | j	j$s,d 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   r      u7   Несколько пользователей с email r   u/   Нашли пользователя по email )namer   u6   Несколько пользователей с name u4   Нашли пользователя по имени )r   TF)r   r   r   )r   auth_plugin)
allow_ldapZ
allow_baseZadmin_allow_baseZallow_gmailZallow_yandexZCmfAuthLdapPluginr   )Z	only_dataN)(load_fieldsr   r   domainlowerstripmodelsCmfPersonGroup
ldap_grouppersonZ	CmfPersongetr   r   listlenloggerwarninfor   r   r   r   appendZ
user_groupr   r	   keysitemshasattrsetattr
is_changedsaveidr   remover   value
class_namedirty)
selfr   _fieldsldap_grpr   Zpersonsr   groupkeyr/    r7   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   r1   zauth_plugin.auto_sync)supersave_preload_fields)r2   	__class__r7   r8   r;   ]   s    z%CmfAuthPluginData.save_preload_fieldsr   Tdepthnotifyemitc                   s>   | j r| j | _| j r$| jjr$|   t j||||d|S )Nr>   )r+   r1   r   Z	auto_syncr9   r:   r,   )r2   r?   r@   rA   argskwargsr<   r7   r8   r,   a   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    Блокируем учетку TrD   )r   r   Zis_adminr   r#   r%   r   r   r   r   r   r.   r/   r,   r:   delete)r2   rD   rB   rC   r4   r<   r7   r8   rE   h   s    
zCmfAuthPluginData.delete)__name__
__module____qualname__r9   r;   r,   rE   __classcell__r7   r7   r<   r8   r      s   Vr   N)Zcmfr   Zcmf.includeZmodules.settings.fieldsr   r   r7   r7   r7   r8   <module>   s   