U
    Ieg<!                     @   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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r^| 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s0tj|d,| _| jj}|rz| jrzd-|_|jd-d. d/| _|   td0|  d1S |r| j r|j!s| jjd2|  d-|_tj	
 }||jkr|j"| |jd-d. d1| _| #  d1S ||_d-|_$| j|_| j%|_%| j&|_&| jp(| j%p(| j&p(d3}|r|d4}	t|	dkrZ|j%sZ|	d |_%t|	d&krz|j&sz|	d& |_&t|	d5kr|	d5 |_'| j|_| jj(D ]}
|
|jkr|j)|
 qd/|_||_*| j+|_+| j,D ]}d6| d6}tj	jdd7d8| d8gt| j,| - d9g d-d:}|s6td;| d8|jr\| jjd<| d= |  ||jkr|j)| qt|jD ]}| dd g |jr|jr|jj.| jj.krq|j/rd/}| j,D ]}||j/krd-}q|s|j"| t0d>|  qtj	
 }||jkr*|j)| | j1rV| j1j2 D ]\}}t3||| q>|jd-d. d/| _| jd-d? td0|  d1S )@uP   
        Создание/обновление пользователя
        r   zauth_plugin.domain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_ldapFuO   auth_data: dirty установлен в False для пользователя Nu    Блокируем учетку      z::ZLIKE%cmf_deleted)r   r   Zinclude_deletedu.   Не найдена группа ext_id LIKE %u.   Восстанавливаем группу «   »zRemove group )Z	only_data)4Z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dirtygdebugZldap_deletedr   removedeleter   r   r   Z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
   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)r6   	__class__r=   r>   rA      s    z%CmfAuthPluginData.save_preload_fields)__name__
__module____qualname__r?   rA   __classcell__r=   r=   rB   r>   r      s    r   N)Zcmfr   Zcmf.includeZmodules.settings.fieldsr   r   r=   r=   r=   r>   <module>   s   