fairdm.api.permissions#
FairDM API permission classes.
Module Contents#
Classes#
Object-level permission class for FairDM API endpoints. |
API#
- class FairDMObjectPermissions[source]#
Bases:
rest_framework.permissions.DjangoObjectPermissionsObject-level permission class for FairDM API endpoints.
Extends
DjangoObjectPermissionsto:Add
viewpermissions toperms_map(required for guardian integration).Return HTTP 404 (not 403) for objects the user cannot view — non-disclosure.
Allow unauthenticated read access for public data.
Require authentication for all write operations.
Integration:
:class:
fairdm.api.filters.FairDMVisibilityFilterhandles queryset-level list filtering so private objects never appear in list results.The serializers of projects, datasets, samples and measurements list the creator at the manage level on create.
Calls
user.has_perm()which routes through ModelBackend, guardianObjectPermissionBackend, and any custom permission backends. For a project, dataset, sample or measurement the answer is the user’s contribution level (RecordLevelBackend).
- perms_map#
None
- authenticated_users_only#
False