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 ""