U
    <h &                     @   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   sf  |  dd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 }| jjrd| jd d| jj }| 	 }ddddddddd d!d"g}t
j }| js$t
jj||d#}|rP||jkrt
jjd$d%|gd&d%| jggd&gd'}|rtd(|j d)|| _n,| jjrP| jjd*| j  | jj  | js| jrt
jj| j|d+}t|d,kr| jjd-| j  n:|r|d }|r||jkr| jjd.|  || _| jsT| jrTt
jj| j|d/}t|d,kr| jjd0| j  n:|rT|d }|rT||jkrT| jjd1|  || _| js| jjsvt
j|d2| _n0| jjd3| d4| jj  d5| _|   d6S nP| jjr| jj| jjd7s| jjd3| j d4| jj  d5| _|   d6S | jj}|r2| j r2d8|_!|jd8d9 d5| _|   d6S |r| j"r|j#sb| jjd:|  d8|_!t
j }||jkr|j$| |jd8d9 d6| _| %  d6S ||_| jj&s| j|_| j'j&s| j'|_'| j(j&s| j(|_(| jj)s| j'j)s| j(j)r| jp| j'p| j(pd;}|r|d<}	t|	dkrH|j'sH|	d |_'t|	d,krh|j(sh|	d, |_(t|	d=kr|	d= |_*| j|_| jj+D ]}
|
|jkr|j,|
 qd5|_!||_-| j.|_.| j/D ]}d>| d>}t
jjdd?d@| d@gt| j/| 0 dAg d8dB}|s$tdC| d@|jrJ| jjdD| dE |  ||jkr|j,| qt|jD ]}| dd&g |jrp|jr|jj1| jj1krqp|j2rpd5}| j/D ]}||j2krd8}q|sp|j$| t3dF|  qpt
j }||jkr|j,| | j4rD| j4j5 D ]\}}t6||| q,|jd8d9 d5| _| jd8dG d6S )HuP   
        Создание/обновление пользователя
        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_deletedzauth_plugin.dont_delete_domainzauth_plugin.sync_group@r   _ext_idrg_member_ofZauth_optionsZ
user_localdoes_not_workemail	last_name
first_nameloginis_adminZ
is_support)r   r   personz==auth_plugin)filterr   u%   Учетная запись с login=ub    уже загружена, похоже в интеграции одинаковые логиныu?   Пользователь удален - восстановим )r   r      u7   Несколько пользователей с email u/   Нашли пользователя по email )namer   u6   Несколько пользователей с name u4   Нашли пользователя по имени )r   u   Пользователь u)    не находится в группе FN)groupT)Z	from_ldapu    Блокируем учетку      z::ZLIKE%cmf_deleted)r   r   Zinclude_deletedu.   Не найдена группа ext_id LIKE %u.   Восстанавливаем группу «   »zRemove group )Z	only_data)7Zload_fieldsr   valuesplitr   domainZdont_delete_domainjoinlowerstripZmodelsZCmfPersonGroupZ
ldap_groupr   Z	CmfPersongetr   r   	Exceptionr   loggerinfoZrestorer   listlenwarnr   Z
sync_groupdirtyZsaveZin_person_groupZldap_disabledr   Zldap_deletedr   removedeleteZis_nullr   r   Z
is_changedZsecond_nameZdefault_groupsappend	ext_loginZemployee_numberr   keysidr   printZ
fields_mapitemssetattr)selfr0   r   _fieldsZldap_grpr   dupZpersonsZ	full_nameZname_arrgrpZgroup_idr   r   Z	gr_existsZ	_group_idZ	_ldap_grpkeyval r<   1./modules/settings/models/cmf_auth_plugin_data.pyprocess_person   s2                      
$


 








"

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)r6   	__class__r<   r=   r@      s    z%CmfAuthPluginData.save_preload_fields)__name__
__module____qualname__r>   r@   __classcell__r<   r<   rA   r=   r      s    (r   N)Zcmfr   Zcmf.includeZmodules.settings.fieldsr   r   r<   r<   r<   r=   <module>   s   