
    >iu                     P    d dl T d dlZ G d dej        j        j                  ZdS )    )*Nc                   N     e Zd ZdZ fdZ fdZ fdZd Zd Zd Z	d Z
 xZS )	CmfAccessRuleTc                 N    t                                                      g dz   S )N)parentdisabledobject_fieldssys_type)supersave_preload_fields)self	__class__s    ./cmf/models/cmf_access_rule.pyr   z!CmfAccessRule.save_preload_fields   s%    ww**,,/b/b/bbb    c                 8   | j                             |            | j        j        }| j        j        rO|rMt          |t                    s8t          d| j        j        j	         d| j        j	         d| j         d            t                      j        di |S )Nz#Value must be list of field names: .z = T)abort )r   save_rule_hookr	   value
is_changed
isinstancelist	cmf_alertinstance
class_namer   save)r   kwargsr	   r   s      r   r   zCmfAccessRule.save   s    ""4(((*0( 	8] 	8:m]aCbCb 	8+&/:+ +=A=O=Z+ +(+ +268 8 8 8 uww|%%f%%%r   c                     |                      ddg           | j        r| j                            |             t                      j        di |S )Nr   r
   r   )load_fieldsr   delete_rule_hookr   delete)r   r   r   s     r   r"   zCmfAccessRule.delete   sX    (J/000; 	/K((...uww~'''''r   c                 p    | j         s| j        j        sd S |                                  | j        | _        d S N)is_newr   r   _load_perm_fieldsperm_parentr   s    r   _calc_perm_parentzCmfAccessRule._calc_perm_parent   s?     	t{5 	F   ;r   c                     d S r$   r   r(   s    r   _calc_perm_has_aclz CmfAccessRule._calc_perm_has_acl&       r   c                     d S r$   r   r(   s    r   _calc_perm_aclzCmfAccessRule._calc_perm_acl)   r,   r   c                     d S r$   r   r(   s    r   _calc_perm_effective_aclz&CmfAccessRule._calc_perm_effective_acl,   r,   r   )__name__
__module____qualname__TEXKOM_no_cacher   r   r"   r)   r+   r.   r0   __classcell__)r   s   @r   r   r      s        Oc c c c c
& 
& 
& 
& 
&( ( ( ( (' ' '          r   r   )cmf.includecmf.fields.cmf_access_rulecmffieldscmf_access_ruler   r   r   r   <module>r;      sY        ! ! ! !( ( ( ( (CJ.< ( ( ( ( (r   