Ë
    
.Úi×  ã                   óR   — d dl mZ d dlmZmZ  G d„ de«      Z G d„ de«      Zd„ Zy)	é    )ÚBasePermission)Ú
MembershipÚRolec                   ó   — e Zd Zd„ Zy)ÚIsPlatformSuperAdminc                 óŒ   — t        |j                  xr. |j                  j                  xr |j                  j                  «      S )N)ÚboolÚuserÚis_authenticatedÚis_superuser)ÚselfÚrequestÚviews      ú)/var/www/html/acx/accounts/permissions.pyÚhas_permissionz#IsPlatformSuperAdmin.has_permission   s/   € Ü�G—L‘LÒ` W§\¡\×%BÑ%BÒ`ÀwÇ|Á|×G`ÑG`ÓaÐaó    N)Ú__name__Ú
__module__Ú__qualname__r   © r   r   r   r      s   „ óbr   r   c                   ó   — e Zd ZdZd„ Zy)ÚIsTenantAdminOrSuperAdminuy   
    AutorisÃ© si:
    - superuser plateforme
    - OU tenant-admin sur ce tenant (via Membership.roles ou is_owner)
    c                 óJ  — |j                   r|j                   j                  sy|j                   j                  ry|j                  j	                  d«      xs8 |j                  j	                  d«      xs |j
                  j	                  d«      }|syt        j                  j                  ||j                   ¬«      }|j                  «       sy|j                  «       }|j                  xs8 |j                  j                  t        j                  ¬«      j                  «       S )NFTÚpkÚ	tenant_pkÚtenant)Ú	tenant_idr
   )Úid)r
   r   r   ÚkwargsÚgetÚdatar   ÚobjectsÚfilterÚexistsÚfirstÚis_ownerÚrolesr   ÚTENANT_ADMIN)r   r   r   r   ÚqsÚms         r   r   z(IsTenantAdminOrSuperAdmin.has_permission   sÊ   € Ø—’ §¡×!>Ò!>ØØ�<‰<×$Ò$Øà—K‘K—O‘O DÓ)Òg¨T¯[©[¯_©_¸[Ó-IÒgÈWÏ\É\×M]ÑM]Ð^fÓMgˆ	ÙØä×Ñ×&Ñ&°ÀÇÁÐ&ÓNˆØ�y‰yŒ{Øà�H‰H‹JˆØ�z‰zÒJ˜QŸW™WŸ^™^¬t×/@Ñ/@˜^ÓA×HÑHÓJÐJr   N)r   r   r   Ú__doc__r   r   r   r   r   r   	   s   „ ñó
Kr   r   c                 ó8  — | rt        | dd«      sy t        j                  j                  | t        j                  j
                  ¬«      j                  d«      j                  d«      }|j                  d¬«      j                  «       xs |j                  «       }|S )Nr   F)r
   Ústatusr   r'   T)r&   )	Úgetattrr   r"   r#   ÚStatusÚACTIVEÚselect_relatedÚprefetch_relatedr%   )r
   r)   r*   s      r   Úget_active_membershipr3   !   s€   € á”w˜tÐ%7¸Ô?Øô 	×Ñ×!Ñ! t´J×4EÑ4E×4LÑ4LÐ!ÓMß	‰˜Ó	!ß	Ñ	˜'Ó	"ð ð 	�	‰	˜4ˆ	Ó ×&Ñ&Ó(Ò6¨B¯H©H«J€AØ€Hr   N)Úrest_framework.permissionsr   Úaccounts.modelsr   r   r   r   r3   r   r   r   ú<module>r6      s,   ðå 5ß ,ôb˜>ô bôK ô Kó0r   