
    >Tf                     x    d dl mZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ dZ G d d	ej                  Zd
S )    )
ArrayField)models)reverse)gettext_lazy)OBJECTPERMISSION_OBJECT_TYPES)RestrictedQuerySet)ObjectPermissionc                      e Zd ZdZ ej         ed          d          Z ej         ed          dd          Z ej	         ed	          d
          Z
 ej        ded          Z e ej        d           ed                    Z ej        dd ed           ed                    Z ej                    Z G d d          Zd Zed             Zed             Zed             Zed             Zd Zd ZdS )r	   z
    A mapping of view, add, change, and/or delete permission for users and/or groups to an arbitrary set of objects
    identified by ORM query parameters.
    named   )verbose_name
max_lengthdescription   T)r   r   blankenabled)r   defaultzcore.ObjectTypeobject_permissions)tolimit_choices_torelated_name   )r   z.The list of actions granted by this permission)
base_field	help_textconstraintszGQueryset filter matching the applicable objects of the selected type(s))r   nullr   r   c                   @    e Zd ZdgZ ed          Z ed          ZdS )ObjectPermission.Metar   
permissionpermissionsN)__name__
__module____qualname__ordering_r   verbose_name_plural     =/var/www/html/netbox-4.1.3/netbox/users/models/permissions.pyMetar   2   s4        8qa..r(   r*   c                     | j         S )N)r   selfs    r)   __str__zObjectPermission.__str__7   s
    yr(   c                     d| j         v S )Nviewactionsr,   s    r)   can_viewzObjectPermission.can_view:   s    %%r(   c                     d| j         v S )Naddr1   r,   s    r)   can_addzObjectPermission.can_add>   s    $$r(   c                     d| j         v S )Nchanger1   r,   s    r)   
can_changezObjectPermission.can_changeB       4<''r(   c                     d| j         v S )Ndeleter1   r,   s    r)   
can_deletezObjectPermission.can_deleteF   r:   r(   c                 V    t          | j                  t          ur| j        gS | j        S )z^
        Return all constraint sets as a list (even if only a single set is defined).
        )typer   listr,   s    r)   list_constraintsz!ObjectPermission.list_constraintsJ   s/      !!--$%%r(   c                 0    t          d| j        g          S )Nzusers:objectpermission)args)r   pkr,   s    r)   get_absolute_urlz!ObjectPermission.get_absolute_urlR   s    /twi@@@@r(   N)r!   r"   r#   __doc__r   	CharFieldr%   r   r   BooleanFieldr   ManyToManyFieldr   object_typesr   r2   	JSONFieldr   r   
as_managerobjectsr*   r.   propertyr3   r6   r9   r=   rA   rE   r'   r(   r)   r	   r	      s         6QvYY  D #&"Q}%%  K
 "f!Qy\\  G *6)6)  L
 j#6#r222!DEE  G #&"Q}%%!]^^	  K , +--G/ / / / / / / /
   & & X& % % X% ( ( X( ( ( X(     A A A A Ar(   r	   N)django.contrib.postgres.fieldsr   	django.dbr   django.urlsr   django.utils.translationr   r%   users.constantsr   utilities.querysetsr   __all__Modelr	   r'   r(   r)   <module>rW      s    5 5 5 5 5 5             6 6 6 6 6 6 9 9 9 9 9 9 2 2 2 2 2 2
EA EA EA EA EAv| EA EA EA EA EAr(   