
    \jI                         d dl mZ d dlmZ ddlmZ  G d de      Z G d de      Z G d	 d
eej                        Z
 G d deej                        Z G d deej                        Zy)    )admin)get_permission_codename   )perm_existsc                   $    e Zd ZddZddZddZy) ObjectPermissionsModelAdminMixinNc                     | j                   }t        d|      }|j                  d|}t        |      r|j                  j                  ||      S | j                  ||      S )Nview.)optsr   	app_labelr   userhas_permhas_change_permission)selfrequestobjr   codenameperms         =/root/env/lib/python3.12/site-packages/rules/contrib/admin.pyhas_view_permissionz4ObjectPermissionsModelAdminMixin.has_view_permission   sW    yy*648..(3t<<((s33--gs;;    c                     | j                   }t        d|      }|j                  j                  |j                  d||      S Nchanger   r   r   r   r   r   r   r   r   r   r   s        r   r   z6ObjectPermissionsModelAdminMixin.has_change_permission   7    yy*8T:||$$%I3OOr   c                     | j                   }t        d|      }|j                  j                  |j                  d||      S )Ndeleter   r   r   s        r   has_delete_permissionz6ObjectPermissionsModelAdminMixin.has_delete_permission   r   r   N)__name__
__module____qualname__r   r   r!    r   r   r   r      s    <P
Pr   r   c                   (     e Zd ZddZd fd	Z xZS )&ObjectPermissionsInlineModelAdminMixinc                 f   | j                   }|j                  rc|j                  D ]T  }|j                  s|j                  j                  | j
                  k7  s4|j                  j                  j                  } n t        d|      }|j                  j                  |j                  d||      S r   )r   auto_createdfieldsreltoparent_model_metar   r   r   r   )r   r   r   r   fieldr   s         r   r   z<ObjectPermissionsInlineModelAdminMixin.has_change_permission   s    yy 991B1B!B 99<<--D +8T:||$$%I3OOr   c                 |    | j                   j                  r| j                  ||      S t        t        |   ||      S r"   )r   r*   r   superr(   r!   )r   r   r   	__class__s      r   r!   z<ObjectPermissionsInlineModelAdminMixin.has_delete_permission'   s=    99!!--gs;;2D  '
-	.r   r"   )r#   r$   r%   r   r!   __classcell__)r3   s   @r   r(   r(      s    P. .r   r(   c                       e Zd Zy)ObjectPermissionsModelAdminNr#   r$   r%   r&   r   r   r6   r6   /   s    r   r6   c                       e Zd Zy)ObjectPermissionsStackedInlineNr7   r&   r   r   r9   r9   3        	r   r9   c                       e Zd Zy)ObjectPermissionsTabularInlineNr7   r&   r   r   r<   r<   9   r:   r   r<   N)django.contribr   django.contrib.authr   permissionsr   objectr   r(   
ModelAdminr6   StackedInliner9   TabularInliner<   r&   r   r   <module>rD      sh      7 %Pv P*.-M .&	"BEDTDT 		*E,?,?		*E,?,?	r   