
    #h,	                     P    d dl mZ d dl d dlmZ  G d dej
                        Zy)    )Path)*)cmf_evagit_groupc                        e Zd Zej                  j
                  dgz   Zed        Zed        Zd Z	d Z
 fdZ fdZ xZS )CmfEvagitGroupnested_listc                     | j                   j                  s| j                   j                          t        t        j
                   d| j                          S )N/repos/)
url_prefix
is_definedloadr   configGIT_DIRselfs    +./modules/evagit/models/cmf_evagit_group.pypathzCmfEvagitGroup.path   s?    ))OO  "v~~&gdoo->?@@    c                     | j                   j                  s| j                   j                          t        t        j
                   d| j                    d| j                         S )Nr
   	_deleted_)r   r   r   r   r   r   coder   s    r   path_deletedzCmfEvagitGroup.path_deleted   sI    ))OO  "v~~&gdoo->i		{STTr   c                 j    | j                   r't        j                  j                  dd      | _        y y )Napp_gitT)sys_typesystem)is_newmodels	CmfFoldergetparentr   s    r   _calc_parentzCmfEvagitGroup._calc_parent   s+    ;; **..	$.ODK r   c                     t         j                  j                  |       }|D ]!  }|j                  |j	                                # |S )ua   Костыль. Функционал данного метода должен уехать в ORMtree_parent)r   r   listextendr   )r   argskwargschildrenchilds        r   r   zCmfEvagitGroup.nested_list   sF    ((--$-? 	1EOOE--/0	1 r   c                    | j                   rt        j                  j                  d|        | j                  j                         rt        d| j                   dd       t        j                  j                  d      }t        j                  | t        j                  |      }|j                          t        | ,  |i |S )	Nperm_create_groupu   Группа с именем u    уже существуетT)abortzsystem.owner:default)r   )	namespacemembergit_role)r   r   CmfEvagitRolecheck_role_permissionr   exists	cmf_alertr    CmfEvagitRoleAssigngcurrent_usersavesuper)r   r(   r)   rolerole_assign	__class__s        r   r9   zCmfEvagitGroup.save$   s    ;;  667JDQyy!9$))D`aimn''++1G+HD 44~~ 5 K
 w|T,V,,r   c                 f   t         j                  j                  d|        t         j                  j	                  |       D ]  }|j                           t         j                  j	                  |       D ]  }|j                           t         j                  j	                  |       D ]  }|j                           | j                  j                         s$t        j                  d| j                   d       n%| j                  j                  | j                         t        |   |i |S )Nperm_delete_groupr$   )r/   zGroup z already been deleted)r   r2   r3   CmfEvagitRepor&   deleter   r6   r   r4   loggingwarningrenamer   r:   )r   r(   r)   repogroupr<   r=   s         r   rA   zCmfEvagitGroup.delete5   s    223FM((--$-? 	DKKM	 **//D/A 	ELLN	 "55::T:J 	!K 	! yy!OOfTYYK/DEFIIT../w~t.v..r   )__name__
__module____qualname__r   r   api_methodspropertyr   r   r"   r   r9   rA   __classcell__)r=   s   @r   r   r      sh    "11==A
 
K A A
 U U
P-"/ /r   r   N)pathlibr   cmf.includemodules.evagit.fieldsr   r    r   r   <module>rQ      s!      2?/%44 ?/r   