U
    Imh5!                     @   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   s  |  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"}|rN||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rN| 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sR| jrRt
jj| j|d.}t|d+kr| jjd/| j  n:|rR|d }|rR||jkrR| jjd0|  || _| jsht
j|d1| _| jj}|r| jrd2|_|jd2d3 d4| _|   d5S |r| j r|j!s| jjd6|  d2|_t
j }||jkr|j"| |jd2d3 d5| _| #  d5S ||_| j|_| j$|_$| j%|_%| jpJ| j$pJ| j%pJd7}|r|d8}	t|	dkr||j$s||	d |_$t|	d+kr|j%s|	d+ |_%t|	d9kr|	d9 |_&| j|_| jj'D ]}
|
|jkr|j(|
 qd4|_||_)| j*|_*| j+D ]}d:| d:}t
jjdd;d<| d<gt| j+| , d=g d2d>}|sXtd?| d<|jr~| jjd@| dA |  ||jkr|j(| qt|jD ]}| dd%g |jr|jr|jj-| jj-krܐq|j.rd4}| j+D ]}||j.krd2}q|s|j"| t/dB|  qt
j }||jkrL|j(| | j0rx| j0j1 D ]\}}t2||| q`|jd2d3 d4| _| jd2dC d5S )DuP   
        Создание/обновление пользователя
        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_domain@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   T)Z	from_ldapFNu    Блокируем учетку      z::ZLIKE%cmf_deleted)r   r   Zinclude_deletedu.   Не найдена группа ext_id LIKE %u.   Восстанавливаем группу «   »zRemove group )Z	only_data)3Z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ldap_disabledr   ZsavedirtyZldap_deletedr   removedeleter   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)r5   	__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   