
    htfT                         d Z ddlmZ ddlZej                  dk  rdZdZ ed ej                  d	      dd
 D              Zd Z	d Z
d Zy)z6
Implementation of per object permissions for Django.
   )checks    N)      zguardian.apps.GuardianConfigz2.4.0c              #   2   K   | ]  }t        |        y wN)int).0xs     [/var/www/html/software/conda/envs/higlass/lib/python3.12/site-packages/guardian/__init__.py	<genexpr>r      s     ;1A;s   .r   c                      t         S r   )__version__     r   get_versionr      s    r   c                      ddl m}  ddlmm} ddlm}  |        |        }t        |dt        fd             t        |dfd	       t        |d
fd       t        |d|       y )Nr   )get_user_modelr   )get_anonymous_userevict_obj_perms_cache)get_user_obj_perms_modelget_anonymousc                               S r   r   )r   s   r   <lambda>z#monkey_patch_user.<locals>.<lambda>   s    8J8L r   add_obj_permc                 >    j                   j                  || |      S r   objectsassign_permselfpermobjUserObjectPermissions      r   r   z#monkey_patch_user.<locals>.<lambda>       $8$@$@$L$LTSWY\$] r   del_obj_permc                 >    j                   j                  || |      S r   r   remove_permr!   s      r   r   z#monkey_patch_user.<locals>.<lambda>    r&   r   r   )django.contrib.authr   utilsr   r   r   setattrstaticmethod)r   r   r   Userr%   r   s       @@r   monkey_patch_userr0      s]    2@/35DD/<0L#MND.]_D.]_D)+@Ar   c                  p    ddl m} m} ddlm}  |       t        | dfd       t        | dfd       y )	Nr   )Group
Permissionr   )get_group_obj_perms_modelr   c                 >    j                   j                  || |      S r   r   r"   r#   r$   GroupObjectPermissions      r   r   z$monkey_patch_group.<locals>.<lambda>*       $9$A$A$M$MdTXZ]$^ r   r'   c                 >    j                   j                  || |      S r   r)   r6   s      r   r   z$monkey_patch_group.<locals>.<lambda>,   r8   r   )django.contrib.auth.modelsr2   r3   r,   r4   r-   )r2   r3   r4   r7   s      @r   monkey_patch_groupr;   $   s2    <057E>^`E>^`r   )__doc__ r   djangoVERSIONdefault_app_configr   tuplesplitr   r0   r;   r   r   r   <module>rC      s`     	>>F7  ; 1 1# 6r :;
;B`r   