U
    Sh                     @   s*   d dl T d dlZG dd dejjjZdS )    )*Nc                       s   e Zd Zedd Zedd Zedd Zedd Zed	d
 Zedd Z	edd Z
edd Zedd Zedd Zedd Zdd Zd  fdd	Zdd fdd
Z  ZS )!CmfPersonGroupc                 C   s"   | j dddgd}|std|S )Ncode==ZUsersfilteru)   Группа Users - не найдена.getKeyError)clsZusers_group r    ./cmf/models/cmf_person_group.py
user_group   s    zCmfPersonGroup.user_groupc                 C   s"   | j dddgd}|std|S )Nr   r   Adminsr   u*   Группа Admins - не найдена.r   )r   Zadmins_groupr   r   r   admin_group   s    zCmfPersonGroup.admin_groupc                 C   s"   | j dddgd}|std|S )Nr   r   ZContactAdminsr   um   Группа Редакторы Компаний и Контактов (ContactAdmins) - не найдена.r   )r   contact_admins_groupr   r   r   r      s    z#CmfPersonGroup.contact_admins_groupc                 C   s"   | j dddgd}|std|S )Nr   r   ZSupportr   u+   Группа Support - не найдена.r   r   resr   r   r   support_group   s    zCmfPersonGroup.support_groupc                 C   s,   | j dddgdddggd}|s(td|S )Nr   r   ZGuestsystemTr   u)   Группа Guest - не найдена.r   r   r   r   r   guest_group"   s    zCmfPersonGroup.guest_groupc                 C   s,   | j dddgdddggd}|s(td|S )Nr   r   	ShareLinkr   Tr   u-   Группа ShareLink - не найдена.r   r   r   r   r   sharelink_group)   s    zCmfPersonGroup.sharelink_groupc                 C   s8   | j dddgdddggd}|s4| ddd}|  |S )Nnamer   u   LDAP пользователиr   Tr   r   r   r	   saver   r   r   r   
ldap_group0   s
    zCmfPersonGroup.ldap_groupc                 C   s8   | j dddgdddggd}|s4| ddd}|  |S )Nr   r   u   Jira пользователиr   Tr   r   r   r   r   r   r   
jira_group8   s
    zCmfPersonGroup.jira_groupc                 C   s8   | j dddgdddggd}|s4| ddd}|  |S )Nr   r   u#   Confluence пользователиr   Tr   r   r   r   r   r   r   confluence_group@   s
    zCmfPersonGroup.confluence_groupc                 C   s8   | j dddgdddggd}|s4| ddd}|  |S )Nr   r   u'   Yandex Tracker пользователиr   Tr   r   r   r   r   r   r   tracker_groupH   s
    zCmfPersonGroup.tracker_groupc                 C   s8   | j dddgdddggd}|s4| ddd}|  |S )Nr   r   u!   YouTrack пользователиr   Tr   r   r   r   r   r   r   youtrack_groupP   s
    zCmfPersonGroup.youtrack_groupc                 C   sB   | j jsd S tddd ttjj| j jdd| jjggdd d S )Nu   У всех пользователей группы будут изменены настройки двухфакторной авторизации.Fabortrg_member_ofIN)two_factor_optZ_filter)kwargs)	r&   
is_changed	cmf_alertZschedule_deferred_jobmodelsZ	CmfPersonZinit_2fa_settingsvalueid)selfr   r   r   _calc_two_factorX   s    zCmfPersonGroup._calc_two_factorNc                    s  | j | dkrtddd | jsX| j jrX| jdkrX| j  sX|sXtd| j j dd | j jr| jdkr| j  rtddd | j jr| jd	kr| j jD ](^}}}|d
kr|jdkrtddd q| j jrt	j
| jg t	j  |   t jf d|i|S )NappenduB   Нельзя добавлять группу саму в себя.Tr"   r   uO   Нельзя удалять последнего Администратора. r   u   Нельзя добавить пользователя в группу ShareLink. Она только для системного пользования.ZProjectAdminsremoveZProjectCreatorsuU   Группа ProjectCreators всегда является членом ProjectAdminsforce)
rg_membersZ
in_changesr)   Zis_newr(   r   loadoldZ_changesr*   ZCmfAccessListZsubject_changed_hookr,   ZCmfProjectRoleAssignZtrigger_reloadr.   superr   )r-   r1   r'   Zchange_actionZ
change_obj_	__class__r   r   r   _   s&    
zCmfPersonGroup.saveF)r1   c                   sJ   | j tjj krtddd | ddg g | _g | _t j|d|i|S )Nu2   Нельзя удалить самого себя!Tr"   r2   r$   r1   )	r,   gZcurrent_personr)   Zload_fieldsr2   r$   r5   delete)r-   r1   argsr'   r7   r   r   r:   {   s    zCmfPersonGroup.delete)N)__name__
__module____qualname__classmethodr   r   r   r   r   r   r   r   r   r    r!   r.   r   r:   __classcell__r   r   r7   r   r      s2   










r   )Zcmf.includeZcmf.fields.cmf_person_groupZcmfZfieldsZcmf_person_groupr   r   r   r   r   <module>   s   