
    *`mh                     P    d dl T d dlZ G d dej        j        j                  ZdS )    )*Nc                   (    e Zd Zed             Zed             Zed             Zed             Zed             Zed             Z	ed             Z
ed             Zed	             Zed
             Zed             Zd Zd fd	Zdd fd
Z xZS )CmfPersonGroupc                 X    |                      g d          }|st          d          |S )N)code==Usersfilteru)   Группа Users - не найдена.getKeyError)clsusers_groups      ./cmf/models/cmf_person_group.py
user_groupzCmfPersonGroup.user_group   s:    gg%<%<%<g== 	HFGGG    c                 X    |                      g d          }|st          d          |S )N)r   r   Adminsr
   u*   Группа Admins - не найдена.r   )r   admins_groups     r   admin_groupzCmfPersonGroup.admin_group   s:    ww&>&>&>w?? 	IGHHHr   c                 X    |                      g d          }|st          d          |S )N)r   r   ContactAdminsr
   um   Группа Редакторы Компаний и Контактов (ContactAdmins) - не найдена.r   )r   contact_admins_groups     r   r   z#CmfPersonGroup.contact_admins_group   sG    "ww.M.M.MwNN# 	L  K  L  L  L##r   c                 X    |                      g d          }|st          d          |S )N)r   r   Supportr
   u+   Группа Support - не найдена.r   r   ress     r   support_groupzCmfPersonGroup.support_group   s9    gg666g77 	JHIII
r   c                 `    |                      g dg dg          }|st          d          |S )N)r   r   Guestsystemr   Tr
   u)   Группа Guest - не найдена.r   r   s     r   guest_groupzCmfPersonGroup.guest_group"   sE    gg5557M7M7MNgOO 	HFGGG
r   c                 `    |                      g dg dg          }|st          d          |S )N)r   r   	ShareLinkr"   r
   u-   Группа ShareLink - не найдена.r   r   s     r   sharelink_groupzCmfPersonGroup.sharelink_group)   sE    gg999;Q;Q;QRgSS 	LJKKK
r   c                     |                      g dg dg          }|s! | dd          }|                                 |S )N)namer      LDAP пользователиr"   r
   r*   Tr)   r#   r   saver   s     r   
ldap_groupzCmfPersonGroup.ldap_group0   W    ggMMMOeOeOefggg 	#:4HHHCHHJJJ
r   c                     |                      g dg dg          }|s! | dd          }|                                 |S )N)r)   r      Jira пользователиr"   r
   r1   Tr+   r,   r   s     r   
jira_groupzCmfPersonGroup.jira_group8   r/   r   c                     |                      g dg dg          }|s! | dd          }|                                 |S )N)r)   r   #   Confluence пользователиr"   r
   r4   Tr+   r,   r   s     r   confluence_groupzCmfPersonGroup.confluence_group@   sW    ggSSSUkUkUklgmm 	#@NNNCHHJJJ
r   c                     |                      g dg dg          }|s! | dd          }|                                 |S )N)r)   r   '   Yandex Tracker пользователиr"   r
   r7   Tr+   r,   r   s     r   tracker_groupzCmfPersonGroup.tracker_groupH   sW    ggWWWYoYoYopgqq 	#DTRRRCHHJJJ
r   c                     |                      g dg dg          }|s! | dd          }|                                 |S )N)r)   r   !   YouTrack пользователиr"   r
   r:   Tr+   r,   r   s     r   youtrack_groupzCmfPersonGroup.youtrack_groupP   sW    ggQQQSiSiSijgkk 	#>tLLLCHHJJJ
r   c                     | j         j        sd S t          dd           t          t          j        j        | j         j        dd| j        j        ggd           d S )Nu   У всех пользователей группы будут изменены настройки двухфакторной авторизации.Fabortrg_member_ofIN)two_factor_opt_filter)kwargs)	rA   
is_changed	cmf_alertschedule_deferred_jobmodels	CmfPersoninit_2fa_settingsvalueid)selfs    r   _calc_two_factorzCmfPersonGroup._calc_two_factorX   s    "- 	F  j  rw  	x  	x  	x  	xf.@\`\o\uR`bfimipivhwQxJz Jz 	{ 	{ 	{ 	{ 	{ 	{r   Nc                 $   | j                             |           dk    rt          dd           | j        sP| j         j        rD| j        dk    r9| j                                         s |st          d| j         j         d           | j         j        r5| j        dk    r*| j                                         rt          dd           | j         j        r?| j        d	k    r4| j         j        D ]'^}}}|d
k    r|j        dk    rt          dd           (| j         j        rCt          j
                            | j        g           t          j                                         |                                   t!                      j        dd|i|S )NappenduB   Нельзя добавлять группу саму в себя.Tr=   r   uO   Нельзя удалять последнего Администратора. r&   u   Нельзя добавить пользователя в группу ShareLink. Она только для системного пользования.ProjectAdminsremoveProjectCreatorsuU   Группа ProjectCreators всегда является членом ProjectAdminsforce )
rg_members
in_changesrE   is_newrD   r   loadold_changesrG   CmfAccessListsubject_changed_hookrK   CmfProjectRoleAssigntrigger_reloadrM   superr-   )rL   rS   rC   change_action
change_obj_	__class__s         r   r-   zCmfPersonGroup.save_   s   ?%%d++x77[cghhhh{ 	Kt9 	Kdi8>S>S,,.. ?T7< ?T}hlhwh{}}  FJ  K  K  K  K ?% 	@$){*B*BtG[G[G]G]*B  s  {  @  @  @  @ ?% 	D$)*F*F151I D D-zA H,,DU1U1Uv  C  D  D  D  D?% 	9 55twi@@@'66888uww|22%26222r   F)rS   c                    | j         t          j        j         k    rt          dd           |                     ddg           g | _        g | _         t                      j        |d|i|S )Nu2   Нельзя удалить самого себя!Tr=   rU   r?   rS   )	rK   gcurrent_personrE   load_fieldsrU   r?   r_   delete)rL   rS   argsrC   rc   s       r   rh   zCmfPersonGroup.delete{   ss    7a&)))JRVWWWW,7888uww~t;5;F;;;r   )N)__name__
__module____qualname__classmethodr   r   r   r   r$   r'   r.   r2   r5   r8   r;   rM   r-   rh   __classcell__)rc   s   @r   r   r      s         [   [ $ $ [$   [   [   [   [   [   [   [   [{ { {3 3 3 3 3 38 #( < < < < < < < < < < <r   r   )cmf.includecmf.fields.cmf_person_groupcmffieldscmf_person_groupr   rT   r   r   <module>rt      sc        " " " "}< }< }< }< }<SZ0? }< }< }< }< }<r   