U
    !fC                     @   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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s.tj|d+| _| jj}|rd| jrdd,|_|  d-| _|   d.S |r| jr|js| jjd/|  d,|_tj	
 }||jkr|j | |  d.| _| !  d.S ||_d,|_"| j|_| j#|_#| j$|_$| jp| j#p| j$pd0}|rx|d1}	t|	dkr@|j#s@|	d |_#t|	d%kr`|j$s`|	d% |_$t|	d2krx|	d2 |_%| j|_| jj&D ]}
|j'|
 qd-|_||_(| j)|_)| j*D ]h}d3| d3}tj	jdd4d5| d5gt| j*| + d6g d,d7}|std8| d5|j'| qt|jD ]}| ddg |jr*|jrb|jj,| jj,krbq*|j-r*d-}| j*D ]}||j-krtd,}qt|s*|j | t.d9|  q*|j'tj	
  |  d-| _| jd,d: d.S );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)r   r   personz==auth_plugin)filterr   u%   Учетная запись с login=ub    уже загружена, похоже в интеграции одинаковые логиныu?   Пользователь удален - восстановим )r   r      u7   Несколько пользователей с email u/   Нашли пользователя по email )namer   u6   Несколько пользователей с name u4   Нашли пользователя по имени )r   TFNu    Блокируем учетку      z::ZLIKE%cmf_deleted)r   r   Zinclude_deletedu.   Не найдена группа ext_id LIKE %zRemove group )Z	only_data)/Z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_deletedZis_adminremovedeleter   r   r   Zsecond_nameZdefault_groupsappend	ext_loginZemployee_numberr   keysidr
   print)selfr,   r   _fieldsZldap_grpr   dupZpersonsZ	full_nameZname_arrgrpZgroup_idr
   groupZ	gr_existsZ	_group_id r5   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)r0   	__class__r5   r6   r9      s    z%CmfAuthPluginData.save_preload_fields)__name__
__module____qualname__r7   r9   __classcell__r5   r5   r:   r6   r      s    	r   N)Zcmfr   Zcmf.includeZmodules.settings.fieldsr   r   r5   r5   r5   r6   <module>   s   