caps.views
caps.views.generics
- class OwnedDeleteView(**kwargs)[source]
Bases:
SingleOwnedMixin,OwnedPermissionMixin,DeleteView
- class OwnedDetailView(**kwargs)[source]
Bases:
SingleOwnedMixin,OwnedPermissionMixin,DetailView
- class OwnedListView(**kwargs)[source]
Bases:
OwnedMixin,ListView
- class OwnedUpdateView(**kwargs)[source]
Bases:
SingleOwnedMixin,OwnedPermissionMixin,UpdateView
caps.views.api
- class AccessViewSet(**kwargs)[source]
Bases:
UserAgentMixin,RetrieveModelMixin,DestroyModelMixin,ListModelMixin,GenericViewSetThis viewset provides API to
Access.It ensures that:
Access can’t be created
Access can’t be updated
Access can only be shared, listed, retrieved, and destroyed.
Note: no model nor queryset is provided by default, as Access is an abstract class and is dependent of the concrete Owned sub-model.
- filterset_fields = ('receiver__uuid', 'emitter__uuid', 'origin__uuid', 'target__uuid')
- get_queryset()[source]
Get the list of items for this view. This must be an iterable, and may be a queryset. Defaults to using self.queryset.
This method should always be used rather than accessing self.queryset directly, as self.queryset gets evaluated only once, and those results are cached for all subsequent requests.
You may want to override this if you need to provide different querysets depending on the incoming request.
(Eg. return a list of items that is specific to the user)
- lookup_field = 'uuid'
- lookup_url_kwarg = 'uuid'
- serializer_class
alias of
AccessSerializer
Share object access to someone. See
OwnedViewSet.share()for more info.
This specifies serializer class used for the
share()action.alias of
ShareSerializer
- class AgentViewSet(**kwargs)[source]
Bases:
UserAgentMixin,ModelViewSetViewset provides API for
Agent.Provides an extra API endpoint
userreturning user’s agents (user()).- filterset_fields = ('group', 'user')
- lookup_field = 'uuid'
- lookup_url_kwarg = 'uuid'
- permissions = [<class 'caps.permissions.DjangoModelPermissions'>]
- queryset
- search_fields = ('group__name', 'user__name')
- serializer_class
alias of
AgentSerializer
- class OwnedViewSet(**kwargs)[source]
Bases:
UserAgentMixin,SingleOwnedMixin,ModelViewSetThis is the base viewset class for Owned models, running object permission checks.
It also provides the
share()that allows a user to share an access to the object.- lookup_field = 'uuid'
- lookup_url_kwarg = 'uuid'
URL’s kwargs argument used to retrieve access uuid.
- permission_classes = [<class 'caps.permissions.OwnedPermissions'>]
- perms_map = {'share': ['%(app_label)s.change_%(model_name)s']}
Share object, returning the newly created Access.
Example of request’s POST data in YAML (see
share()andShareSerializer):receiver: "agent-uuid" expiration: null grants: myapp.view_myobject: 1 myapp.change_myobject: 0
The serializer class used for the
share()action.alias of
ShareSerializer
caps.views.common
- class AccessDeleteView(**kwargs)[source]
Bases:
AccessMixin,DeleteView
- class AccessDetailView(**kwargs)[source]
Bases:
AccessMixin,DetailView
- class AccessListView(**kwargs)[source]
Bases:
AccessMixin,ListView
- class AgentCreateView(**kwargs)[source]
Bases:
AgentMixin,CreateViewCreate an Agent (only for group).
- fields = ['group']
- permission_required = 'caps.add_agent'
- class AgentDeleteView(**kwargs)[source]
Bases:
AgentMixin,DeleteView- permission_required = 'caps.delete_agent'
- class AgentDetailView(**kwargs)[source]
Bases:
AgentMixin,DetailView- permission_required = 'caps.view_agent'
- class AgentListView(**kwargs)[source]
Bases:
AgentMixin,ListView- permission_required = 'caps.view_agent'
- class AgentUpdateView(**kwargs)[source]
Bases:
AgentMixin,UpdateView- fields = ['group']
- permission_required = 'caps.add_agent'
caps.views.mixins
- class AccessMixin[source]
Bases:
ByUUIDMixin,UserAgentMixinMixin used by Access views and viewsets.
- class AgentMixin[source]
Bases:
ByUUIDMixin,UserAgentMixin,PermissionRequiredMixin
- class ByUUIDMixin[source]
Bases:
objectFetch a model by UUID.
- lookup_url_kwarg = 'uuid'
URL’s kwargs argument used to retrieve access uuid.
- class OwnedMixin[source]
Bases:
UserAgentMixinBase mixin providing functionalities to work with
Ownedmodel.It provides:
assign self’s
agentandagentsqueryset to available
Access.
- access_class = None
Access class (defaults to model’s Access).
- get_access_queryset()[source]
Return queryset for accesses.
- Return type:
AccessQuerySet|None
- class OwnedPermissionMixin[source]
Bases:
OwnedMixinThis mixin checks for object permission when
get_object()is called. It raises aPermissionDeniedorHttp404if user does not have access to the object.- permissions = [<class 'caps.permissions.OwnedPermissions'>]
- class SingleOwnedMixin[source]
Bases:
OwnedMixinDetail mixin used to retrieve Owned detail.
It requires subclass to have a
check_object_permissionsmethod ( eg by a child ofOwnedPermissionMixinor DRF APIView).- lookup_url_kwarg = 'uuid'
URL’s kwargs argument used to retrieve access uuid.