U
    rRdn                     @   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d fdd	Zdd fdd
Zd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   ./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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_group)   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_group1   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_group9   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_groupA   s
    zCmfPersonGroup.tracker_groupNc                    s   | j jr6| jdkr6| j  s6|s6td| j j dd | j jr^| jdkr^| j  r^tddd | j jrptj  t	 j
f d|i|S )Nr   uO   Нельзя удалять последнего Администратора. Tabortr   u   Нельзя добавить пользователя в группу ShareLink. Она только для системного пользования.force)Z
rg_membersZ
is_changedr   load	cmf_alertoldZmodelsZCmfAccessListZtrigger_reloadsuperr   )selfr"   kwargs	__class__r   r   r   I   s     
zCmfPersonGroup.saveF)r"   c                   s0   | j tjj krtddd t j|d|i|S )Nu2   Нельзя удалить самого себя!Tr    r"   )idgZcurrent_personr$   r&   delete)r'   r"   argsr(   r)   r   r   r-   X   s    zCmfPersonGroup.deletec                 K   s   | j gS )N)Z	cmf_owner)r'   fieldsr(   r   r   r   all_relation_persons]   s    z#CmfPersonGroup.all_relation_persons)N)N)__name__
__module____qualname__classmethodr   r   r   r   r   r   r   r   r   r   r-   r0   __classcell__r   r   r)   r   r      s*   








r   )Zcmf.includeZcmf.fields.cmf_person_groupZcmfr/   Zcmf_person_groupr   r   r   r   r   <module>   s   