U
    hVc
                     @   s*   d dl T d dlZG dd dejjjZdS )    )*Nc                       sv   e Z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_groupNc                    s~   | j jr2| jdkr2| j s2|s2td| j j dd | j jrV| jdkrV| j rVtddd | j jrhtj  t j	f d|i|S )Nr   uO   Нельзя удалять последнего Администратора. Tabortr   u   Нельзя добавить пользователя в группу ShareLink. Она только для системного пользования.force)
Z
rg_membersZ
is_changedr   	cmf_alertoldZmodelsZCmfAccessListZtrigger_reloadsupersave)selfr   kwargs	__class__r   r   r   )   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%   6   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(   __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   