U
    Efx                     @   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   sZ  |  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rZ| 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}|rb| jrbd+|_|  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|_| jj%D ]}|j&| qd,|_||_'| j(|_(| j)D ]h}	d/|	 d/}
tj	jdd0d1|
 d1gt| j)|	 * d2g d+d3}|std4|
 d1|j&| q0t|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 | t-d5|  q|j&tj	
  |  d,| _| jd+d6 d-S )7uP   
        Создание/обновление пользователя
        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.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default_groupsappend	ext_loginZemployee_numberr   keysidr
   print)selfr)   r   _fieldsZldap_grpr   dupZpersonsgrpZgroup_idr
   groupZ	gr_existsZ	_group_id r2   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)r-   	__class__r2   r3   r6      s    z%CmfAuthPluginData.save_preload_fields)__name__
__module____qualname__r4   r6   __classcell__r2   r2   r7   r3   r      s   ~r   N)Zcmfr   Zcmf.includeZmodules.settings.fieldsr   r   r2   r2   r2   r3   <module>   s   