U
    -d4                     @   s*   d dl T d dlZG dd dejjjZdS )    )*Nc                       sX   e Zd ZdZ fddZ fddZ fddZdd	 Zd
d Zdd Z	dd Z
  ZS )CmfAccessRuleTc                    s   t   dddg S )NparentZdisabledobject_fields)supersave_preload_fieldsself	__class__ ./models/cmf_access_rule.pyr      s    z!CmfAccessRule.save_preload_fieldsc                    sl   t j  | j|  | jj}| jjr^|r^t|t	s^t
d| jjj d| jj d| j dd t jf |S )Nz#Value must be list of field names: .z = T)abort)modelsCmfAccessListtrigger_reloadr   Zsave_rule_hookr   value
is_changed
isinstancelistZ	cmf_alertinstance
class_namer   save)r	   kwargsr   r
   r   r   r      s    
 zCmfAccessRule.savec                    s.   t j  | j r | j|  t jf |S N)r   r   r   r   loadZdelete_rule_hookr   delete)r	   r   r
   r   r   r      s    

zCmfAccessRule.deletec                 C   s&   | j s| jjsd S |   | j| _d S r   )Zis_newr   r   Z_load_perm_fieldsZperm_parentr   r   r   r   _calc_perm_parent   s    zCmfAccessRule._calc_perm_parentc                 C   s   d S r   r   r   r   r   r   _calc_perm_has_acl%   s    z CmfAccessRule._calc_perm_has_aclc                 C   s   d S r   r   r   r   r   r   _calc_perm_acl(   s    zCmfAccessRule._calc_perm_aclc                 C   s   d S r   r   r   r   r   r   _calc_perm_effective_acl+   s    z&CmfAccessRule._calc_perm_effective_acl)__name__
__module____qualname__Zno_cacher   r   r   r   r   r    r!   __classcell__r   r   r
   r   r      s   r   )Zcmf.includeZcmf.fields.cmf_access_ruleZcmfZfieldsZcmf_access_ruler   r   r   r   r   <module>   s   