U
    Ni'                     @   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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$}|rR||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rR| 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sV| jrVt
jj| j|d0}t|d-kr| jjd1| j  n:|rV|d }|rV||jkrV| jjd2|  || _| js| jjsxt
j|d3| _n0| jjd4| d5| jj  d6| _|   d7S nP| jjr| jj| jjd8s| jjd4| j d5| jj  d6| _|   d7S | jj}|r4| j r4d9|_!|jd9d: d6| _|   d7S |r| j"r|j#sd| jjd;|  d9|_!t
j }||jkr|j$| |jd9d: d7| _| %  d7S ||_| 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rJ|j'sJ|	d |_'t|	d-krj|j(sj|	d- |_(t|	d>kr|	d> |_*| jj&s| j|_| jj+D ]}
|
|jkr|j,|
 qd6|_!||_-| j.|_.|j/jpi }| jj0j|d?< ||_/| j1D ]}d@| d@}t
jjddAdB| dBgt| j1| 2 dCg d9dD}|sRtdE| dB|jrx| jjdF| dG |  ||jkr|j,| qt|jD ]}| dd'g |jr|jr|jj3| jj3kr֐q|j4rd6}| j1D ]}||j4krd9}q|s|j$| t5dH|  qt
j }||jkrF|j,| | j6rr| j6j7 D ]\}}t8||| qZ|jd9d: d6| _| jd9dI d7S )JuP   
        Создание/обновление пользователя
        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_groupzauth_plugin.disable_base_auth@r   _ext_idrg_member_of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    Блокируем учетку      disable_base_authz::ZLIKE%cmf_deleted)r   r   Zinclude_deletedu.   Не найдена группа ext_id LIKE %u.   Восстанавливаем группу «   »zRemove group )Z	only_data)9Z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   r   r   keysidr   printZ
fields_mapitemssetattr)selfr2   r   _fieldsZldap_grpr   dupZpersonsZ	full_nameZname_arrgrpZ	auth_optsZgroup_idr   r   Z	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)r8   	__class__r>   r?   rB      s    z%CmfAuthPluginData.save_preload_fields)__name__
__module____qualname__r@   rB   __classcell__r>   r>   rC   r?   r      s    -r   N)Zcmfr   Zcmf.includeZmodules.settings.fieldsr   r   r>   r>   r>   r?   <module>   s   