Ë
    
.Úi²  ã                   ó,   — d dl mZmZ d„ Zd„ Zd„ Zd„ Zy)é    )Ú
MembershipÚRolec                 ó8  — | rt        | dd«      sy t        j                  j                  | t        j                  j
                  ¬«      j                  d«      j                  d«      }|j                  d¬«      j                  «       xs |j                  «       }|S )NÚis_authenticatedF)ÚuserÚstatusÚtenantÚrolesT)Úis_owner)	Úgetattrr   ÚobjectsÚfilterÚStatusÚACTIVEÚselect_relatedÚprefetch_relatedÚfirst)r   ÚqsÚms      ú(/var/www/html/acx/accounts/tenant_ctx.pyÚget_active_membershipr      s€   € á”w˜tÐ%7¸Ô?Øô 	×Ñ×!Ñ! t´J×4EÑ4E×4LÑ4LÐ!ÓMß	‰˜Ó	!ß	Ñ	˜'Ó	"ð ð 	�	‰	˜4ˆ	Ó ×&Ñ&Ó(Ò6¨B¯H©H«J€AØ€Hó    c                 óP   — t        | «      }|r|j                  r|j                  S d S )N)r   r	   )r   r   s     r   Úget_active_tenantr      s#   € Ü˜dÓ#€AÙ˜QŸXšXˆ1�8‰8Ð/¨4Ð/r   c                 óf   — | s
t        «       S t        | j                  j                  dd¬«      «      S )NÚidT)Úflat)Úsetr
   Úvalues_list)Ú
memberships    r   Úrole_idsr!      s-   € ÙÜ‹uˆÜˆz×Ñ×+Ñ+¨D°tÐ+Ó<Ó=Ð=r   c                 ó„   — | sy| j                   ryt        | «      }t        j                  |v xs t        j                  |v S )NFT)r   r!   r   ÚADMINÚAPPROVER)r    Úidss     r   Úis_tenant_adminr&      s;   € ÙØØ×ÒØÜ
�:Ó
€CÜ�J‰J˜#ÐÒ8¤4§=¡=°CÐ#7Ð8r   N)Úaccounts.modelsr   r   r   r   r!   r&   © r   r   ú<module>r)      s   ðç ,òò0ò>ó
9r   