
    q[9i'                     P    d dl mZ d dl d dlmZ  G d dej
                        Zy)    )fields)*)cmf_auth_plugin_datac                   $     e Zd Zd Z fdZ xZS )CmfAuthPluginDatac                    | j                  g d       | j                  }| j                  j                  }| j                  j                  d      d    d| j                  j
                   }| j                  j                  rCdj                  | j                  j                  d             d| j                  j
                   }|j                         j                         }g d}t        j                  j                         }| j                  st        j                  j                  ||      }|r||j                   v rOt        j"                  j                  dd|gd	d| j                  ggd	g
      }|rt%        d|j                   d      || _        nl| j                  j&                  rV| j                  j(                  j+                  d| j                          | j                  j                  j-                          | j                  s| j.                  rt        j                  j1                  | j.                  |      }t3        |      dkD  r3| j                  j(                  j5                  d| j.                          nF|rD|d   }|r=||j                   vr/| j                  j(                  j+                  d|        || _        | j                  s| j6                  rt        j                  j1                  | j6                  |      }t3        |      dkD  r3| j                  j(                  j5                  d| j6                          nF|rD|d   }|r=||j                   vr/| j                  j(                  j+                  d|        || _        | j                  s| j                  j8                  st        j                  |      | _        n| j                  j(                  j+                  d| d| j                  j8                          d| _        | j=                          y| j                  j8                  r| j                  j?                  | j                  j8                        sa| j                  j(                  j+                  d| j                   d| j                  j8                          d| _        | j=                          y| j                  j                  }|r=| j@                  r1d|_!        |j=                  d       d| _        | j=                          y|r| jD                  r|jF                  s/| j                  j(                  j+                  d|        d|_!        t        j                  j                         }||j                   v r|j                   jI                  |       |j=                  d       d| _        | jK                          y||_        | j6                  jL                  s| j6                  |_        | jN                  jL                  s| jN                  |_'        | jP                  jL                  s| jP                  |_(        | j6                  jR                  s,| jN                  jR                  s| jP                  jR                  r| j6                  xs | jN                  xs | jP                  xs d}|rq|j                  d      }	t3        |	      dkD  r|jN                  s
|	d   |_'        t3        |	      dkD  r|jP                  s
|	d   |_(        t3        |	      d kD  r
|	d    |_*        | j.                  jL                  s| j.                  |_        | j                  jV                  D ],  }
|
|j                   vs|j                   jY                  |
       . d|_!        ||_-        | j\                  |_.        |j^                  j                  xs i }| j                  j`                  j                  |d!<   ||_/        | jb                  D ]  }d"| d"}t        j                  j                  d#d$d%| d%gt1        | jb                  |   je                               d&gz   d'      }|st%        d(| d%      |j&                  r9| j                  j(                  j+                  d)| d*       |j-                          ||j                   vs|j                   jY                  |        t1        |j                         D ]  }|j                  d#d	g       |j                  r9|j                  r.|j                  jf                  | j                  jf                  k7  r\|jh                  sid}| jb                  D ]  }||jh                  v sd} |r|j                   jI                  |       tk        d+|         t        j                  j                         }||j                   vr|j                   jY                  |       | jl                  r9| jl                  j                  jo                         D ]  \  }}tq        |||        |j=                  d       d| _        | j=                  d,       y)-uP   
        Создание/обновление пользователя
        )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_options
user_localdoes_not_workemail	last_name
first_nameloginis_admin
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)	from_ldapu    Блокируем учетку      disable_base_authz::r   LIKE%cmf_deleted)r   r   include_deletedu.   Не найдена группа ext_id LIKE %u.   Восстанавливаем группу «   »zRemove group )	only_data)9load_fieldsr   valuesplitr   domaindont_delete_domainjoinlowerstripmodelsCmfPersonGroup
ldap_groupr   	CmfPersongetr   r   	Exceptionr&   loggerinforestorer   listlenwarnr   
sync_groupdirtysavein_person_groupldap_disabledr   ldap_deletedr   removedeleteis_nullr   r   
is_changedsecond_namedefault_groupsappend	ext_loginemployee_numberr   r#   r   keysidr   print
fields_mapitemssetattr)selfrK   r   _fieldsldap_grpr   duppersons	full_namename_arrgrp	auth_optsgroup_idr   r   	gr_exists	_group_id	_ldap_grpkeyvals                       1./modules/settings/models/cmf_auth_plugin_data.pyprocess_personz CmfAuthPluginData.process_person   s1	    	 v 	w
 JJ	

  ::##C(+,Ad.>.>.E.E-FG..xx

 0 0 567q9I9I9P9P8QRE##%R ((335{{%%))g)FFv222 2266$PV?WZgimosoo  ZA  ?B  LY  KZ6  [C'*OPVP\P\~  ^@  )A  B  B$[[$$##((+jkokvkvjw)xyKK%%'{{tzz&&++$**W+MG7|a  '',,/fgkgqgqfr-st hf.A.AA$$++003bcibj1kl"(DK {{tyy&&++7+KG7|a  '',,/efjfofoep-qr hf.A.AA$$++003ghngo1pq"(DK{{ ##..$..U.;  '',,/HS|  ~B  ~N  ~N  ~Y  ~Y  }Z  .[  \"
		((;;..T5E5E5P5P.Q  '',,/HU~  @D  @P  @P  @[  @[  \  .]  ^"
		 "" d((#'F KK$K'DJIIK d''??  '',,/OPVx-XY'+$,,779H6...##**84KK$K'DKKKM yy  ))FK~~%%#~~F&& $F994>>#<#<@Z@Z		LT^^LtL"I$??3/x=1$V-=-='/{F$x=1$V->->(0F%x=1$)1!F&zz!!::FL##22 	0C&---##**3/	0  %$!%!5!5''--3	)-)9)9)K)K)Q)Q	%&'  	2H(2&F))--h!F8ST5V59$++h:O:T:T:V5W[hZi5i>B . DE "PQWPXXY Z[[    '',,/]^c]ddf-ghF///##**51	2 &--. 	3Ex78$$(9(9e>O>O>R>RVZVfVfViVi>i||!	!% )I ELL0$(	) !''..u5M%12	3 ))446	F///&&y1?? OO11779 *SS)* 	d#
		D	!    c                 *    t         |          g dz   S )N)r   r
   r	   r?   zauth_plugin.auto_sync)supersave_preload_fields)rS   	__class__s    rb   rg   z%CmfAuthPluginData.save_preload_fields   s     w*, 0I I 	Ird   )__name__
__module____qualname__rc   rg   __classcell__)rh   s   @rb   r   r      s    j"XI Ird   r   N)cmfr   cmf.includemodules.settings.fieldsr   r    rd   rb   <module>rq      s%      8oI,>> oIrd   