Datasets Authoorization

CASL ability actions

This is the list of the permissions methods available for datasets and all their endpoints

Endpoint authorization

  • DatasetCreate
  • DatasetRead
  • DatasetUpdate
  • DatasetDelete
  • DatasetAttachmentCreate
  • DatasetAttachmentRead
  • DatasetAttachmentUpdate
  • DatasetAttachmentDelete
  • DatasetOrigdatablockCreate
  • DatasetOrigdatablockRead
  • DatasetOrigdatablockUpdate
  • DatasetOrigdatablockDelete
  • DatasetDatablockCreate
  • DatasetDatablockRead
  • DatasetDatablockUpdate
  • DatasetDatablockDelete
  • DatasetLogbookRead

    Instance authorization

  • DatasetCreateOwnerNoPid
  • DatasetCreateOwnerWithPid
  • DatasetCreateAny
  • DatasetReadManyPublic
  • DatasetReadManyAccess
  • DatasetReadManyOwner
  • DatasetReadOnePublic
  • DatasetReadOneAccess
  • DatasetReadOneOwner
  • DatasetReadAny
  • DatasetUpdateOwner
  • DatasetUpdateAny
  • DetasetDeleteOwner
  • DatasetDeleteAny
  • DatasetAttachmentCreateOwner
  • DatasetAttachmentCreateAny
  • DatasetAttachmentReadPublic
  • DatasetAttachmentReadAccess
  • DatasetAttachmentReadOwner
  • DatasetAttachmentReadAny
  • DatasetAtatchementUpdateOwner
  • DatasetAtatchementUpdateAny
  • DatasetAttachmentDeleteOwner
  • DatasetAttachmentDeleteAny
  • DatasetOrigdatablockCreateOwner
  • DatasetOrigdatablockCreateAny
  • DatasetOrigdatablockReadPublic
  • DatasetOrigdatablockReadAccess
  • DatasetOrigdatablockReadOwner
  • DatasetOrigdatablockReadAny
  • DatasetOrigdatablockUpdateOwner
  • DatasetOrigdatablockUpdateAny
  • DatasetOrigdatablockDeleteAny
  • DatasetDatablockCreateOwner
  • DatasetDatablockCreateAny
  • DatasetDatablockReadPublic
  • DatasetDatablockReadAccess
  • DatasetDatablockReadOwner
  • DatasetDatablockReadAny
  • DatasetDatablockUpdateOwner
  • DatasetDatablockUpdateAny
  • DatasetDatablockDeleteOwner
  • DatasetDatablockDeleteAny
  • DatasetLogbookReadOwner
  • DatasetLogbookReadAny

Implementation

How the different level of authorization translates in data condition applied byt he backend.

  • * Public
    • isPublished = true
  • * Access (condition ar applied in logical or)
    • isPublished = true
    • ownerGroup is one of the groups that the user belongs
    • accessGroups are one of the groups that the user belongs
    • sharedWith contains the user's email
  • * Owner
    • ownerGroup is one of the groups that the user belongs
  • * Any
    • User can perform the action to any dataset

Priority

%%{init: {'theme' : 'base', 'themeVariables': { 'fontSize': '11px', 'fontFamily' : 'monospace'}}}%% graph LR; DatasetCreate-->DatasetCreateOwnerNoPid; DatasetCreateOwnerNoPid-->DatasetCreateOwnerWithPid; DatasetCreateOwnerWithPid-->DatasetCreateAny; DatasetRead-->DatasetReadManyPublic; DatasetReadManyPublic-->DatasetReadManyAccess; DatasetReadManyAccess-->DatasetReadManyOwner; DatasetReadManyOwner-->DatasetReadAny; DatasetRead-->DatasetReadOnePublic; DatasetReadOnePublic-->DatasetReadOneAccess; DatasetReadOneAccess-->DatasetReadOneOwner; DatasetReadOneOwner-->DatasetReadAny; DatasetUpdate-->DatasetUpdateOwner; DatasetUpdateOwner-->DatasetUpdateAny; DatasetDelete-->DatasetDeleteOwner; DatasetDeleteOwner-->DatasetDeleteAny;

Authorization table

HTTP method Endpoint Endpoint Authorization Anonymous Authenticated User Create Dataset Groups Create Dataset with Pid Groups Create Dataset Privileged Groups Admin Groups Delete Groups Notes
POST Datasets DatasetCreate no no Owner, w/o PID

DatasetCreateOwnerNoPid
Owner, w/ PID

DatasetCreateOwnerWithPid
Any

DatasetCreateAny
Any

DatasetCreateAny
no
POST Datasets/isValid DatasetCreate no no Owner, w/o PID

DatasetCreateOwnerNoPid
Owner, W/ PID

DatasetCreateOwnerWithPid
Any

DatasetCreateAny
Any

DatasetCreateAny
no
GET Datasets DatasetRead Public

DatasetReadPublic
Has Access

DatasetReadAccess
Has Access

DatasetReadAccess
Has Access

DatasetReadAccess
Has Access

DatasetReadAccess
Any

DatasetReadyAny
no
GET Datasets/fullquery DatasetRead Public

DatasetReadManyPublic
Has Access

DatasetReadManyAccess
Has Access

DatasetReadManyAccess
Has Access

DatasetReadManyAccess
Has Access

DatasetReadManyAccess
Any

DatasetReadAny
no
GET Datasets/fullfacet DatasetRead Public

DatasetReadManyPublic
Has Access

DatasetReadManyAccess
Has Access

DatasetReadManyAccess
Has Access

DatasetReadManyAccess
Has Access

DatasetReadManyAccess
Any

DatasetReadAny
no
GET Datasets/metadataKeys DatasetRead Public

DatasetReadManyPublic
Has Access

DatasetReadManyAccess
Has Access

DatasetReadManyAccess
Has Access

DatasetReadManyAccess
Has Access

DatasetReadManyAccess
Any

DatasetReadAny
no
GET Datasets/count DatasetRead Public

DatasetReadManyPublic
Has Access

DatasetReadManyAccess
Has Access

DatasetReadManyAccess
Has Access

DatasetReadManyAccess
Has Access

DatasetReadManyAccess
Any

DatasetReadAny
no
GET Datasets/findOne DatasetRead Public

DatasetReadOnePublic
Has Access

DatasetReadOneAccess
Has Access

DatasetReadOneAccess
Has Access

DatasetReadOneAccess
Has Access

DatasetReadOneAccess
Any

DatasetReadAny
no
GET Datasets/pid DatasetRead Public

DatasetReadOnePublic
Has Access

DatasetReadOneAccess
Has Access

DatasetReadOneAccess
Has Access

DatasetReadOneAccess
Has Access

DatasetReadOneAccess
Any

DatasetReadAny
no
PATCH Datasets/pid DatasetUpdate no no Owner

DatasetUpdateOwner
Owner

DatasetUpdateOwner
Owner

DatasetUpdateOwner
Any

DatasetUpdateAny
no
PUT Datasets/pid DatasetUpdate no no Owner

DatasetUpdateOwner
Owner

DatasetUpdateOwner
Owner

DatasetUpdateOwner
Any

DatasetUpdateAny
no
POST Datasets/pid/appendToArrayField DatasetUpdate no no Owner

DatasetUpdateOwner
Owner

DatasetUpdateOwner
Owner

DatasetUpdateOwner
Any

DatasetUpdateAny
no
DELETE Datasets/pid DatasetDelete no no no no no no Any

DatasetDeleteAny
GET Datasets/pid/thumbnail DatasetRead Public

DatasetReadPublic
Has Access

DatasetReadAccess
Has Access

DatasetReadAccess
Has Access

DatasetReadAccess
Has Access

DatasetReadAccess
Any

DatasetReadAny
no
POST Datasets/pid/attachments DatasetAttachmentCreate no no Owner

DatasetAttachmentCreateOwner
Owner

DatasetAttachmentCreateOwner
Any

DatasetAttachmentCreateAny
Any

DatasetAttachmentCreateAny
no
GET Datasets/pid/attachments DatasetAttachmemntRead Public

DatasetAttachmentReadPublic
Has Access

DatasetAttachmentReadAccess
Has Access

DatasetAttachmentReadAccess
Has Access

DatasetAttachmentReadAccess
Has Access

DatasetAttachmentReadAccess
Any

DatasetAttachmentReadAny
no
PUT Datasets/pid/attachments/aid DatasetAttachmemntUpdate no no Owner

DatasetAttachmentUpdateOwner
Owner

DatasetAttachmentUpdateOwner
Owner

DatasetAttachmentUpdateOwner
Any

DatasetAttachmentCreateAny
no
DELETE Datasets/pid/attachments/aid DatasetAttachmemntDelete no no Owner

DatasetAttachmentDeleteOwner
Owner

DatasetAttachmentDeleteOwner
Owner

DatasetAttachmentDeleteOwner
Any

DatasetAttachmentDeleteAny
no
POST Datasets/pid/origdatablocks DatasetOrigdatablocksCreate no no Owner

DatasetOrigdatablockCreateOwner
Owner

DatasetOrigdatablockCreateOwner
Any

DatasetOrigdatablockCreateAny
Any

DatasetOrigdatablockCreateAny
no
POST Datasets/pid/origdatablocks/isValid DatasetOrigdatablocksCreate no no Owner

DatasetOrigdatablockCreateOwner
Owner

DatasetOrigdatablockCreateOwner
Any

DatasetOrigdatablockCreateAny
Any

DatasetOrigdatablockCreateAny
no
GET Datasets/pid/origdatablocks DatasetOrigdatablocksRead Public

DatasetOrigdatablockReadPublic
Has Access

DatasetOrigdatablockReadOAccess
Has Access

DatasetOrigdatablockReadAccess
Has Access

DatasetOrigdatablockReadAccess
Has Access

DatasetOrigdatablockReadAccess
Any

DatasetOrigdatablockReadAny
no
PATCH Datasets/pid/origdatablocks/oid DatasetOrigdatablocksUpdate no no Owner

DatasetOrigdatablockUpdateOwner
Owner

DatasetOrigdatablockUpdateOwner
Owner

DatasetOrigdatablockUpdateOwner
Any

DatasetOrigdatablockCreateAny
no
DELETE Datasets/pid/origdatablocks/oid DatasetOrigdatablocksDelete no no no no no no Any

DatasetOrigdatablockDeleteAny
POST Datasets/pid/datablocks DatasetDatablocksCreate no no Owner

DatasetDatablockCreateOwner
Owner

DatasetDatablockCreateOwner
Owner

DatasetDatablockCreateOwner
Any

DatasetDatablockCreateAny
no
GET Datasets/pid/datablocks DatasetOrigdatablocksRead Public

DatasetDatablockReadPublic
Has Access

DatasetDatablockReadAccess
Has Access

DatasetDatablockReadAccess
Has Access

DatasetDatablockReadAccess
Has Access

DatasetDatablockReadAccess
Any

DatasetDatablockReadAny
no
PATCH Datasets/pid/datablocks/oid DatasetDatablocksUpdate no no Owner

DatasetDatablockUpdateOwner
Owner

DatasetDatablockUpdateOwner
Owner

DatasetDatablockUpdateOwner
Any

DatasetDatablockCreateAny
no
DELETE Datasets/pid/datablocks/oid DatasetDatablocksDelete no no no no no no Any

DatasetDatablockDeleteAny
GET Datasets/pid/logbook DatasetLogbookRead no Owner

DatasetLogbookReadOwner
Owner

DatasetLogbookReadOwner
Owner

DatasetLogbookReadOwner
Owner

DatasetLogbookReadOwner
Any

DatasetLogbookReadAny
no

results matching ""

    No results matching ""