Ë
    B…îhÉ  ã                   ó´   — d dl mZ d dlmZ d dlmZmZ d dlmZm	Z	m
Z
 d dlmZmZ d dlmZ d dlmZ d dlmZmZmZ  ed	d
d
d
dœ¬«       G d„ de«      «       Zy)é    )ÚSite)Úoverride_settings)Úassign_user_to_pageÚcreate_page)Úclear_user_permission_cacheÚget_permission_cacheÚset_permission_cache)ÚACCESS_PAGE_AND_DESCENDANTSÚGlobalPagePermission)ÚCMSTestCase)ÚRemovedInDjangoCMS51Warning)Úget_change_perm_tuplesÚhas_generic_permissionÚuser_can_publish_pageTé<   )ÚmenusÚcontentÚpermissions)ÚCMS_PERMISSIONÚCMS_CACHE_DURATIONSc                   ó*   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚPermissionCacheTestsc                 ó¤   — | j                  ddd¬«      | _        | j                  ddd¬«      | _        t        ddd| j                  ¬	«      | _        y )
NÚsuperT)Úis_staffÚis_superuserÚ
randomuser)r   Úadd_default_permissionsÚhomeúnav_playground.htmlÚen©Ú
created_by)Ú_create_userÚ
user_superÚuser_normalr   Ú	home_page)Úselfs    úJ/home/dcms/DCMS/lib/python3.12/site-packages/cms/tests/test_permissions.pyÚsetUpzPermissionCacheTests.setUp   s[   € Ø×+Ñ+¨G¸dØ9=ð ,ó ?ˆŒà×,Ñ,¨\ÀDØEIð -ó KˆÔä$ VÐ-BÀDØ04·±ôAˆó    c                 óœ  — t        | j                  d«      }| j                  |«       t        | j                  d| j                  j
                  g«       t        | j                  d«      }| j                  || j                  j
                  g«       t        | j                  «       t        | j                  d«      }| j                  |«       y)zN
        Test basic permissions cache get / set / clear low-level api
        Úchange_pageN)r   r&   ÚassertIsNoner	   r'   ÚidÚassertEqualr   )r(   Úcached_permissionss     r)   Útest_basic_permissionsz+PermissionCacheTests.test_basic_permissions&   s¦   € ô 2°$×2BÑ2BÀMÓRÐØ×ÑÐ,Ô-ä˜T×-Ñ-¨}¸t¿~¹~×?PÑ?PÐ>QÔRÜ1°$×2BÑ2BÀMÓRÐØ×ÑÐ+¨d¯n©n×.?Ñ.?Ð-@ÔAä# D×$4Ñ$4Ô5Ü1°$×2BÑ2BÀMÓRÐØ×ÑÐ,Õ-r+   c                 óÄ  — t        ddd| j                  ¬«      }t        || j                  dd¬«       t	        | j                  d«      }| j                  |«       t        | j                  t        j                  j                  «       «      }t	        | j                  d«      }| j                  |t        |j                  j                  fg«       | j                  ||«       y)	zC
        Test page permission manager working on a subpage
        Úpage_br    r!   r"   T©Úcan_viewÚ
can_changer-   N)r   r%   r   r&   r   r.   r   r   ÚobjectsÚget_currentr0   r
   ÚnodeÚpath)r(   r4   r1   Úlive_permissionsÚcached_permissions_permissionss        r)   Útest_permission_managerz,PermissionCacheTests.test_permission_manager5   sÂ   € ô ˜XÐ'<¸dØ(,¯©ô9ˆä˜F D×$4Ñ$4¸tØ'+õ	-ä1°$×2BÑ2BÀMÓRÐØ×ÑÐ,Ô-ä1°$×2BÑ2BÄDÇLÁL×D\ÑD\ÓD^Ó_ÐÜ)=¸d×>NÑ>NØ>Kó*MÐ&à×ÑÐ)Ô-HÈ&Ï+É+×JZÑJZÐ,[Ð+\Ô]Ø×ÑÐ7Ð9IÕJr+   c                 ó²  — t        ddd| j                  ¬«      }t        j                  j	                  dd| j
                  ¬«      }|j                  j                  t        j                  j                  «       «       t        | j
                  dg «       t        | j
                  |t        j                  j                  «       «      }| j                  |«       y )Nz	test pager    r!   r"   T)r7   Úcan_publishÚuserÚpublish_page)r   r%   r   r8   Úcreater&   ÚsitesÚaddr   r9   r	   r   Ú
assertTrue)r(   ÚpageÚpage_permissionr@   s       r)   Ú!test_cached_permission_precedencez6PermissionCacheTests.test_cached_permission_precedenceF   s³   € ô ØØ!ØØ—‘ô	
ˆô /×6Ñ6×=Ñ=ØØØ×!Ñ!ð >ó 
ˆð
 	×Ñ×!Ñ!¤$§,¡,×":Ñ":Ó"<Ô=Ü˜T×-Ñ-¨~¸rÔBä+Ø×ÑØÜL‰L×$Ñ$Ó&ó
ˆð
 	‰˜Õ$r+   c                 óØ  — ddl m} t        ddd| j                  ¬«      }t	        || j
                  dd¬«       | j                  t        || j
                  d	«      «       | j                  t        || j
                  d
«      «       d}| j                  t        «      5 }| j                   || j
                  |d«      «       d d d «       | j                  t        j                  «      |«       | j                  t        «      5 }| j                   || j
                  |d«      «       d d d «       | j                  t        |j                  «      |«       y # 1 sw Y   Œ•xY w# 1 sw Y   Œ;xY w)Nr   )Úhas_page_permissionr4   r    r!   r"   Tr5   r-   rB   zahas_page_permission is deprecated. Use cms.utils.page_permissions.has_generic_permission instead.ÚchangeÚpublish)Úcms.utils.permissionsrK   r   r%   r   r&   rF   r   ÚassertFalseÚassertWarnsr   r0   ÚstrÚwarning)r(   rK   r4   ÚmessageÚws        r)   Ú*test_has_generic_permissions_compatibiltiyz?PermissionCacheTests.test_has_generic_permissions_compatibiltiy^   s8  € Ý=ä˜XÐ'<¸dØ(,¯©ô9ˆä˜F D×$4Ñ$4¸tØ'+õ	-ð 	‰Ô.¨v°t×7GÑ7GÈÓWÔXØ×ÑÔ/°¸×8HÑ8HÈ.ÓYÔZðTˆð ×ÑÔ9Ó:ð 	U¸aØO‰OÑ/°×0@Ñ0@À&È(ÓSÔT÷	Uà×Ñœ˜QŸY™Y›¨Ô1Ø×ÑÔ9Ó:ð 	W¸aØ×ÑÑ0°×1AÑ1AÀ6È9ÓUÔV÷	Wà×Ñœ˜QŸY™Y›¨Õ1÷	Uð 	Uú÷	Wð 	Wús   Â$EÄ$E ÅEÅ E)N)Ú__name__Ú
__module__Ú__qualname__r*   r2   r>   rI   rU   © r+   r)   r   r      s   „ òAò.òKò"%ó02r+   r   N)Údjango.contrib.sites.modelsr   Údjango.test.utilsr   Úcms.apir   r   Úcms.cache.permissionsr   r   r	   Úcms.models.permissionmodelsr
   r   Úcms.test_utils.testcasesr   Úcms.utils.compat.warningsr   Úcms.utils.page_permissionsr   r   r   r   rY   r+   r)   ú<module>rb      sb   ðÝ ,Ý /ç 4÷ñ ÷
 ZÝ 0Ý A÷ñ ñ ØàØØñôôU2˜;ó U2óñU2r+   