U
    g                      @   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                       s$   e Zd Zdd Z fddZ  ZS )CmfAuthPluginDatac                 C   sl  |  dddd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ddg
}tj	
 }| jstjj||d}|r||jkrtjjd d!|gd"d!| jggd"gd#}|rtd$|j d%|| _n,| jjr| jjd&| j  | jj  | js| jrtjj| j|d'}t|d(krb| jjd)| j  n:|r|d }|r||jkr| jjd*|  || _| 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s4tj|d.| _| jj}|rn| jrnd/|_|jd/d0 d1| _|   d2S |r| jr|js| jjd3|  d/|_tj	
 }||jkr|j | |jd/d0 d2| _| !  d2S ||_d/|_"| j|_| j#|_#| j$|_$| jp| j#p| j$pd4}|r|d5}	t|	dkrN|j#sN|	d |_#t|	d(krn|j$sn|	d( |_$t|	d6kr|	d6 |_%| j|_| jj&D ]}
|
|jkr|j'|
 qd1|_||_(| j)|_)| j*D ]}d7| d7}tj	jdd8d9| d9gt| j*| + d:g d/d;}|s*td<| d9|jrP| jjd=| d> |  ||jkr|j'| qt|jD ]}| dd"g |jrv|jr|jj,| jj,krqv|j-rvd1}| j*D ]}||j-krd/}q|sv|j | t.d?|  qvtj	
 }||jkr|j'| | j/rJ| j/j0 D ]\}}t1||| q2|jd/d0 d1| _| jd/d@ d2S )AuP   
        Создание/обновление пользователя
        r   zauth_plugin.domainzperson.is_adminzperson.is_supportperson.user_localperson.rg_member_of.ext_idzperson.loginzperson.rg_member_ofzperson.namezperson.auth_optionsgroupszperson.emailzperson.last_namezperson.first_namezperson.second_namezperson.employee_numberzauth_plugin.default_groupszperson.cmf_deleted@r   ext_idrg_member_ofZauth_options
user_localdoes_not_workemail	last_name
first_nameloginis_admin)r   r   personz==auth_plugin)filterr   u%   Учетная запись с login=ub    уже загружена, похоже в интеграции одинаковые логиныu?   Пользователь удален - восстановим )r   r      u7   Несколько пользователей с email u/   Нашли пользователя по email )namer   u6   Несколько пользователей с name u4   Нашли пользователя по имени )r   T)Z	from_ldapFNu    Блокируем учетку      z::ZLIKE%cmf_deleted)r   r   Zinclude_deletedu.   Не найдена группа ext_id LIKE %u.   Восстанавливаем группу «   »zRemove group )Z	only_data)2Zload_fieldsr   valuesplitr   domainlowerstripZmodelsZCmfPersonGroupZ
ldap_groupr   Z	CmfPersongetr   r   	Exceptionr   loggerinfoZrestorer   listlenwarnr   Zldap_disabledr   ZsavedirtyZldap_deletedr   removedeleter   r   r   Zsecond_nameZdefault_groupsappend	ext_loginZemployee_numberr   keysidr
   printZ
fields_mapitemssetattr)selfr.   r   _fieldsZldap_grpr   dupZpersonsZ	full_nameZname_arrgrpZgroup_idr
   groupZ	gr_existsZ	_group_idZ	_ldap_grpkeyval r;   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   r*   zauth_plugin.auto_sync)supersave_preload_fields)r4   	__class__r;   r<   r?      s    z%CmfAuthPluginData.save_preload_fields)__name__
__module____qualname__r=   r?   __classcell__r;   r;   r@   r<   r      s    r   N)Zcmfr   Zcmf.includeZmodules.settings.fieldsr   r   r;   r;   r;   r<   <module>   s   