
    x-e?                     h    d dl  d dlZ G d dej                  j                  j
                        Zy)    )*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                 *    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    w*,/VVV    c                 x   | j                   j                  |        | j                  j                  }| j                  j                  rd|rbt        |t              sRt        d| j                  j                  j                   d| j                  j                   d| j                   d       t        | ,  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0((]:m]aCb&&//::;1T=O=O=Z=Z<[d(()+268 w|%f%%r   c                     | j                   j                         r| j                   j                  |        t        |   di |S )Nr   )r   loaddelete_rule_hookr
   delete)r   r   r   s     r   r!   zCmfAccessRule.delete   s7    ;;KK((.w~'''r   c                     | j                   s| j                  j                  sy | j                          | j                  | _        y N)is_newr   r   _load_perm_fieldsperm_parentr   s    r   _calc_perm_parentzCmfAccessRule._calc_perm_parent   s0    t{{55 ;;r   c                      y r#   r   r'   s    r   _calc_perm_has_aclz CmfAccessRule._calc_perm_has_acl%       r   c                      y r#   r   r'   s    r   _calc_perm_aclzCmfAccessRule._calc_perm_acl(   r+   r   c                      y 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
&('r   r   )cmf.includecmf.fields.cmf_access_rulecmffieldscmf_access_ruler   r   r   r   <module>r:      s'     !'CJJ..<< 'r   