
    aEf?                     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)supersave_preload_fields)self	__class__s    ./cmf/models/cmf_access_rule.pyr   z!CmfAccessRule.save_preload_fields   s%    ww**,,/V/V/VVV    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                     | j                                         r| j                             |             t                      j        di |S )Nr   )r   loaddelete_rule_hookr
   delete)r   r   r   s     r   r!   zCmfAccessRule.delete   sK    ; 	/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-   r/   __classcell__)r   s   @r   r   r      s        OW W W W W
& 
& 
& 
& 
&( ( ( ( (' ' '          r   r   )cmf.includecmf.fields.cmf_access_rulecmffieldscmf_access_ruler   r   r   r   <module>r:      sY        ! ! ! !' ' ' ' 'CJ.< ' ' ' ' 'r   