o
    ÎCâh¢  ã                   @   sd   d dl mZ d dlZd dlmZ d dlmZmZ d dlm	Z	m
Z
 dd„ Zdd	„ Zd
d„ Zdd„ ZdS )é    )Úunicode_literalsN)Úsettings)ÚRolesManagerÚget_user_roles)ÚPermissionsManagerÚavailable_perm_namesc                    sf   t | ƒrdS t|tƒs|g}g }|D ]}t |¡st |¡}| |¡ qt| ƒ‰ t	‡ fdd„|D ƒƒS )z+Check if a user has any of the given roles.Tc                    s   g | ]}|ˆ v ‘qS © r   )Ú.0Úrole©Ú
user_rolesr   új/var/www/html/myvaluetrips/my_value_trip_new/venv/lib/python3.10/site-packages/rolepermissions/checkers.pyÚ
<listcomp>   s    zhas_role.<locals>.<listcomp>)
Ú_check_superpowersÚ
isinstanceÚlistÚinspectÚisclassr   Úretrieve_roleÚappendr   Úany)ÚuserÚrolesÚnormalized_rolesr
   r   r   r   Úhas_role   s   


r   c                 C   s   t | ƒrdS |t| ƒv S )z'Check if a user has a given permission.T)r   r   )r   Úpermission_namer   r   r   Úhas_permission    s   r   c                    sB   t ˆƒrdS t | ¡‰ tˆƒ}|sdg}t‡ ‡‡fdd„|D ƒƒS )zACheck if a user has permission to perform an action on an object.TNc                    s   g | ]}ˆ |ˆˆƒ‘qS r   r   )r	   Ú	user_role©ÚcheckerÚobjr   r   r   r   3   s    z)has_object_permission.<locals>.<listcomp>)r   r   Úretrieve_checkerr   r   )Úchecker_namer   r    r   r   r   r   Úhas_object_permission(   s   
r#   c                 C   s"   d}t t|dƒ}|sdS | o| jS )zz
    Check if user is superuser and should have superpowers.

    Default is true to maintain backward compatibility.
    Ú%ROLEPERMISSIONS_SUPERUSER_SUPERPOWERSTF)Úgetattrr   Úis_superuser)r   ÚkeyÚsuperpowersr   r   r   r   6   s
   
r   )Ú
__future__r   r   Údjango.confr   Úrolepermissions.rolesr   r   Úrolepermissions.permissionsr   r   r   r   r#   r   r   r   r   r   Ú<module>   s    