U
    ߃e                      @   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                       sL   e Zd Zdd Z fddZdddd fdd	
Zd
d fdd
Z  ZS )CmfAuthPluginDatac                 C   s  |  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|krZ| jjd+| jj d,| d- d.| j_| j| j_| j| j_| j| j_| j| j_| jjD ]}| jj| qd/| j_ || j_!| j"| j_"| j#D ]}	d0|	 d0}
tj	jdd1d2|
 d2g| j#|	 $ d}|s2tj	jd3d| j#|	 d3 g| j#|	 $ d}|sPtj	| j#|	 d3 |
d4}|j%& sb|
|_%|
|j%kr~|j% |
 |_%| j#|	 ' D ]0\}}|dkrqt(||rt)||| q|j*r|+  | jj| qt| jjD ]}| ddg |jr|jr$|jj,| jj,kr$q|j%rd/}| j#D ]}||j%kr6d.}q6|s| jj-| t.d5|  q| jjtj	
  | jj+  d/| _/| j+d.d6 d7S )8uP   
        Создание/обновление пользователя
        r   zauth_plugin.domainperson.user_localperson.rg_member_of.ext_idzperson.login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   u8   login пользователя не совпадает! z != u   .Возможно неправильно указан домен в настройках. Удалите пользователя или исправьте настройки.TFz::ZLIKE%r   )r   r   zRemove group )Z	only_dataN)0load_fieldsr   valuesplitr   domainlowerstripmodelsCmfPersonGroup
ldap_groupr   Z	CmfPersongetr   r   	ExceptionZcmf_deletedloggerinfoZrestorer   listlenwarnr   errorr   r   r   Zdefault_groupsappendr   	ext_loginZemployee_numberr	   keysr   loaditemshasattrsetattr
is_changedsaveidremoveprintdirty)selfr+   r   _fieldsldap_grpr   dupZpersonsgrpZgroup_idr   groupkeyr   Z	gr_existsZ	_group_id 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   r6   zauth_plugin.auto_sync)supersave_preload_fields)r7   	__class__r>   r?   rB   y   s    z%CmfAuthPluginData.save_preload_fieldsr   Tdepthnotifyemitc                   s>   | j r| j | _| jr$| jjr$|   t j||||d|S )NrE   )r1   r6   r   Z	auto_syncr@   rA   r2   )r7   rF   rG   rH   argskwargsrC   r>   r?   r2   }   s
    zCmfAuthPluginData.saveF)forcec                   s   |  dddddg | jrv| jjs@| jjd| j  d| j_tj	 }|| jj
krd| jj
| | jj  d | _t j|d|i|S )	Nzperson.does_not_workr   r   zperson.is_adminzperson.is_supportu    Блокируем учетку TrK   )r   r   Zis_adminr   r$   r%   r   r   r    r!   r   r4   r   r2   rA   delete)r7   rK   rI   rJ   r9   rC   r>   r?   rL      s    
zCmfAuthPluginData.delete)__name__
__module____qualname__r@   rB   r2   rL   __classcell__r>   r>   rC   r?   r      s   rr   N)Zcmfr   Zcmf.includeZmodules.settings.fieldsr   r   r>   r>   r>   r?   <module>   s   