
    tia                     h    d dl  d dlZ G d dej                  j                  j
                        Zy)    )*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ed        Zd Zd fd	Zdd fd
Z xZS )CmfPersonGroupc                 H    | j                  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=FGG    c                 H    | j                  g d      }|st        d      |S )N)r   r   Adminsr
   *   Группа Admins - не найдена.r   )r   admins_groups     r   admin_groupzCmfPersonGroup.admin_group   s(    ww&>w?GHHr   c                 H    | j                  g d      }|st        d      |S )N)r   r   IBAdminsr
   r   r   )r   groups     r   ib_admin_groupzCmfPersonGroup.ib_admin_group   s'    9:GHHr   c                 H    | j                  g d      }|st        d      |S )N)r   r   ContactAdminsr
   um   Группа Редакторы Компаний и Контактов (ContactAdmins) - не найдена.r   )r   contact_admins_groups     r   r   z#CmfPersonGroup.contact_admins_group   s2    "ww.MwN#  K  L  L##r   c                 H    | j                  g d      }|st        d      |S )N)r   r   Supportr
   u+   Группа Support - не найдена.r   r   ress     r   support_groupzCmfPersonGroup.support_group"   s'    gg6g7HII
r   c                 P    | j                  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)   s-    gg57MNgOFGG
r   c                 P    | j                  g dg dg      }|st        d      |S )N)r   r   	ShareLinkr'   r
   u-   Группа ShareLink - не найдена.r   r"   s     r   sharelink_groupzCmfPersonGroup.sharelink_group0   s-    gg9;QRgSJKK
r   c                 n    | j                  g dg dg      }|s | dd      }|j                          |S )N)namer      LDAP пользователиr'   r
   r/   Tr.   r(   r   saver"   s     r   
ldap_groupzCmfPersonGroup.ldap_group7   7    ggMOefgg:4HCHHJ
r   c                 n    | j                  g dg dg      }|s | dd      }|j                          |S )N)r.   r      Jira пользователиr'   r
   r6   Tr0   r1   r"   s     r   
jira_groupzCmfPersonGroup.jira_group?   r4   r   c                 n    | j                  g dg dg      }|s | dd      }|j                          |S )N)r.   r   #   Confluence пользователиr'   r
   r9   Tr0   r1   r"   s     r   confluence_groupzCmfPersonGroup.confluence_groupG   s7    ggSUklgm@NCHHJ
r   c                 n    | j                  g dg dg      }|s | dd      }|j                          |S )N)r.   r   '   Yandex Tracker пользователиr'   r
   r<   Tr0   r1   r"   s     r   tracker_groupzCmfPersonGroup.tracker_groupO   s7    ggWYopgqDTRCHHJ
r   c                 n    | j                  g dg dg      }|s | dd      }|j                          |S )N)r.   r   !   YouTrack пользователиr'   r
   r?   Tr0   r1   r"   s     r   youtrack_groupzCmfPersonGroup.youtrack_groupW   s7    ggQSijgk>tLCHHJ
r   c                     | j                   j                  sy t        dd       t        t        j
                  j                  | j                   j                  dd| j                  j                  ggd       y )Nu   У всех пользователей группы будут изменены настройки двухфакторной авторизации.Fabortrg_member_ofIN)two_factor_opt_filter)kwargs)	rF   
is_changed	cmf_alertschedule_deferred_jobmodels	CmfPersoninit_2fa_settingsvalueid)selfs    r   _calc_two_factorzCmfPersonGroup._calc_two_factor_   sr    ""--  j  rw  	xf..@@\`\o\o\u\uR`bfimipipivivhwQxJz 	{r   c                 b   | j                   j                  |       dk(  rt        dd       | j                  se| j                   j                  rO| j
                  dk(  r@| j                   j                         s&|s$t        d| j                   j                   d       | j                   j                  r6| j
                  dk(  r'| j                   j                         rt        dd       | j                   j                  rP| j
                  d	k(  rA| j                   j                  D ](  ^}}}|d
k(  s|j
                  dk(  st        dd       * | j                   j                  r*t        j                  j                  | j                  g       | j                          t        | <  dd|i|S )NappenduB   Нельзя добавлять группу саму в себя.TrB   r   uO   Нельзя удалять последнего Администратора. r+   u   Нельзя добавить пользователя в группу ShareLink. Она только для системного пользования.ProjectAdminsremoveProjectCreatorsuU   Группа ProjectCreators всегда является членом ProjectAdminsforce )
rg_members
in_changesrJ   is_newrI   r   loadold_changesrL   CmfAccessListsubject_changed_hookrP   rR   superr2   )rQ   rX   rH   change_action
change_obj_	__class__s         r   r2   zCmfPersonGroup.savef   sl   ??%%d+x7Zcgh{{t99dii8>S,,.ughlhwhwh{h{g|}  FJ  K ??%%$)){*BtG[G[G]  r  {  @ ??%%$))*F151I1I D-zA H,DU1U u  C  DD ??%%  55twwi@w|2%2622r   F)rX   c                    | j                   t        j                  j                   k(  rt        dd       | j	                  ddg       g | _        g | _        t        |    |d|i|S )Nu2   Нельзя удалить самого себя!TrB   rZ   rD   rX   )	rP   gcurrent_personrJ   load_fieldsrZ   rD   rb   delete)rQ   rX   argsrH   rf   s       r   rk   zCmfPersonGroup.delete   sb    77a&&)))JRVW,78w~t;5;F;;r   )N)__name__
__module____qualname__classmethodr   r   r   r   r$   r)   r,   r3   r7   r:   r=   r@   rR   r2   rk   __classcell__)rf   s   @r   r   r      s         $ $                {36 #( < <r   r   )cmf.includecmf.fields.cmf_person_groupcmffieldscmf_person_groupr   rY   r   r   <module>rw      s)     "C<SZZ00?? C<r   