U
    {®Þhü  ã                   @   s   d dl mZ G dd„ dƒZdS )é    )ÚPermissionDeniedc                       sD   e Zd ZdZdZdZdZ‡ fdd„Zdd„ Zdd„ Z	d	d
„ Z
‡  ZS )ÚPermissionCheckedMixinaÓ  
    Mixin for class-based views to enforce permission checks according to
    a permission policy (see wagtail.permission_policies).

    To take advantage of this, subclasses should set the class property:
    * permission_policy (a policy object)
    and either of:
    * permission_required (an action name such as 'add', 'change' or 'delete')
    * any_permission_required (a list of action names - the user must have
      one or more of those permissions)
    Nc                    sH   | j d k	r|  | j ¡st‚| jd k	r4|  | j¡s4t‚tƒ j|f|ž|ŽS ©N)Úpermission_requiredÚuser_has_permissionr   Úany_permission_requiredÚuser_has_any_permissionÚsuperÚdispatch)ÚselfÚrequestÚargsÚkwargs©Ú	__class__© úo/var/www/dating/data/www/fatepal.com/env/lib/python3.8/site-packages/wagtail/admin/views/generic/permissions.pyr
      s    

zPermissionCheckedMixin.dispatchc                 C   s   | j  p| j  | jj|¡S r   )Úpermission_policyr   r   Úuser)r   Ú
permissionr   r   r   r       s    ÿz*PermissionCheckedMixin.user_has_permissionc                 C   s   | j  p| j  | jj||¡S r   )r   Ú user_has_permission_for_instancer   r   )r   r   Úinstancer   r   r   r   %   s      ÿÿz7PermissionCheckedMixin.user_has_permission_for_instancec                 C   s   | j  p| j  | jj|¡S r   )r   r   r   r   )r   Zpermissionsr   r   r   r   ,   s     ÿÿz.PermissionCheckedMixin.user_has_any_permission)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r
   r   r   r   Ú__classcell__r   r   r   r   r      s   r   N)Zdjango.core.exceptionsr   r   r   r   r   r   Ú<module>   s   