
    !iu                     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sys_type)supersave_preload_fields)self	__class__s    ./cmf/models/cmf_access_rule.pyr   z!CmfAccessRule.save_preload_fields   s    w*,/bbb    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                  ddg       | j                  r| j                  j                  |        t        |   di |S )Nr   r
   r   )load_fieldsr   delete_rule_hookr   delete)r   r   r   s     r   r"   zCmfAccessRule.delete   sA    (J/0;;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.   r0   __classcell__)r   s   @r   r   r      s,    Oc
&('r   r   )cmf.includecmf.fields.cmf_access_rulecmffieldscmf_access_ruler   r   r   r   <module>r;      s'     !(CJJ..<< (r   