o
    6k~iô  ã                   @   sX   d dl mZ G dd„ dejƒZG dd„ dejƒZG dd„ dejƒZG dd	„ d	ejƒZd
S )é    )Úpermissionsc                   @   ó   e Zd ZdZdd„ ZdS )ÚIsSuperAdminz Permission check for Super Adminc                 C   s   |j o|j jo|j jdkS )NÚsuper_admin©ÚuserÚis_authenticatedÚrole©ÚselfÚrequestÚview© r   ú7/var/www/newdalilibackend/backend/common/permissions.pyÚhas_permission   ó
   ÿ
ýzIsSuperAdmin.has_permissionN©Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r      ó    r   c                   @   r   )ÚIsAdminz)Permission check for Admin or Super Adminc                 C   ó   |j o|j jo|j jdv S )N)Úadminr   r   r
   r   r   r   r      r   zIsAdmin.has_permissionNr   r   r   r   r   r      r   r   c                   @   r   )ÚIsPlaceAdminz7Permission check for Place Admin, Admin, or Super Adminc                 C   r   )N)Úplace_adminr   r   r   r
   r   r   r   r      r   zIsPlaceAdmin.has_permissionNr   r   r   r   r   r      r   r   c                   @   r   )ÚIsPlaceOwnerzDPermission check for Place Owner (Place Admin of the specific place)c                 C   s`   t |dƒr	|j}n
t |dƒr|}ndS |jjdv rdS |jjdkr.t |jdƒo-|jjj|kS dS )NÚplaceÚownerF)r   r   Tr   Úplace_admin_profile)Úhasattrr   r   r	   r    )r   r   r   Úobjr   r   r   r   Úhas_object_permission$   s   

ÿz"IsPlaceOwner.has_object_permissionN)r   r   r   r   r#   r   r   r   r   r   "   r   r   N)Úrest_frameworkr   ÚBasePermissionr   r   r   r   r   r   r   r   Ú<module>   s
    


