Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents
maxLevel7
minLevel1

Prior to version

Status
title2021.3.0
, data security was configured within the technical administration and required programming skills to define security rules.

...

  • version: The only available version for patterns is v1 but introducing a version in patterns will ease further improvements and ease ascendent compatibility. Until new versions are available, just keep in mind that natively handled permissions start with “v1”.

  • domain: The domain of the security rule that this permission will act on. As of

    Status
    title2021.3.0
    , objectdataand boards are handled

  • action: The action within the domain that this permission will act on. As of

    Status
    title2021.3.0
    , all actions from objectdata domain can be handled.

  • modifiers: Modifiers will define the context for which the action will be granted. Modifiers vary from one action to the other:

    • objectdata

      • insert action: 1 modifier is to be defined: creationMode. Therefore, all insert permissions follow this pattern: v1/objectdata/insert/<creationMode>

      • changestatus action: 3 modifiers are to be defined: workflowAction, instanceStatus, ownership. Therefore, all changestatus permissions follow this pattern: v1/objectdata/changestatus/<workflowAction>/<instanceStatus>/<ownership>

      • other objectdata actions (delete, i18nfieldstranslate, order, retrievecaption, update, view): 2 modifiers are to be defined: instanceStatus, ownership. Therefore, all those actions follow this pattern: v1/objectdata/<action>/<instanceStatus>/<ownership>

    • boards

      • makepublicboard action: No modifiers - permission is granted or not

      • shareboard action: 3 modifiers are to be defined: boardVisibility, boardType, ownership,

...

  • $online: An online marked state

  • $archived: An archived marked state

  • $offline: A state that is neither marked online not archived

  • $initialstatus: The initial state of the instance (usually = 2)

  • $anystatus: Any state

  • <customMetaStatus>: It is possible to create custom names regrouping several states (see further)

  • <statusID>: It is possible to reference a status ID directly (New in

    Status
    title2022.3.0
    )

ownership

Ownership allows to limit a permission to the owner property of an instance. 2 keywords are available

...

Groups allow to centralize multiple permissions on one or many obectsobjects, for one or many roles and one or many users.

...

/api/packaged/admin/security/surfer-bases/<userId>

Cheat sheet

Find for each managed domain / action, the permission pattern

...

domain

...

action

...

permission pattern

...

boards

...

makePublicBoard

...

v1/boards/makepublicboard

...

boards

...

shareBoard

...

v1/boards/shareboard/:boardVisibility/:boardType/:ownership

...

objectdata

...

changeStatus

...

v1/objectdata/changestatus/:workflowAction/:instanceStatus/:ownership

...

objectdata

...

delete

...

New in 2022.3.0

New handled actions in objectdata domain

Following actions were added to objectdata domain and can be handled with @pkgV1Objectdata

  • broadcastVideo

  • defineVideoPoster

  • editPicture

  • editVideoChapters

  • editVideoSubtitles`

  • embed

  • manageVideoCallToActions

  • manageVideoRolls

  • order

  • sliceVideo

All these actions follow the pattern v1/objectdata/<action>/<instanceStatus>/<ownership>

New handled domains

From

Status
title2022.3.0
some new domains are handled through new macros. Find below how these domains are handled.

Domain applications

applications domain defines one action isAvailable allowing to grant access on an application base on a code (parameter applicationname).

By default, the BackOffice application has for code bo, portal front-end has for code portal, Office pickers have for code officeassetpicker and all other pickers have for code assetpicker.

Permissions for this action have the pattern:

v1/applications/<action>/<applicationname>. As only one action is available as of

Status
title2022.3.0
, the pattern can be simplified to v1/applications/isavailable/<applicationname>

The macro @pkgV1Applications handles permissions checks. Note that as others PACKAGED_Security macros, the action ne is to be passed as an argument:

Code Block
@pkgV1Applications('isAvailable')

Domain objectactions

objectactions domain allows to define permissions on actions on an object type, with no restriction on an instance. Its primary goal is to help displaying actions triggers targeting multiple objects.

PACKAGED_Security plugin provides a new macro for handling objectactions domain actions: @pkgV1ObjectActions. As for @pkgV1Objectdata, this macro takes one argument: the name of the action to test permissions for.

@pkgV1ObjectActions is defined to check for an objectname if some permissions were given to a user for the corresponding objectdata action → No additional configuration is required on objectactions: an action from objectactions domain will be granted if some permissions were given on objectdata

Equivalences

objectactions action domain

tested objectdata action

create

insert

Check for existence of either

objectdata/insert/$anycreation
or
objectdata/insert/$newcreation

damimport

massimport

multiupdate

update

Check for existence of
objectdata/update/*

datavaluespicker

broadcastVideo

broadcastVideo

Check for existence of
objectdata/broadcastvideo/*

defineVideoPoster

defineVideoPoster

Check for existence of
objectdata/definevideoposter/*

delete

delete

Check for existence of
objectdata/delete/*

editPicture

editPicture

Check for existence of
objectdata/editpicture/*

editVideoChapters

editVideoChapters

Check for existence of
objectdata/editvideochapters/*

editVideoSubtitles

editVideoSubtitles

Check for existence of
objectdata/editvideosubtitles/*

embed

embed

Check for existence of
objectdata/embed/*

manageVideoCallToActions

manageVideoCallToActions

Check for existence of
objectdata/managevideocalltoactions/*

manageVideoRolls

manageVideoRolls

Check for existence of
objectdata/managevideorolls/*

order

order

Check for existence of
objectdata/order/*

sliceVideo

sliceVideo

Check for existence of
objectdata/slicevideo/*

Cheat sheet

Find for each managed domain / action, the permission pattern

domain

action

permission pattern

applications

isAvailable

v1/applications/isavailable/:applicationName

boards

makePublicBoard

v1/boards/makepublicboard

boards

shareBoard

v1/boards/shareboard/:boardVisibility/:boardType/:ownership

objectdata

broadcastVideo

v1/objectdata/broadcastvideo/:instanceStatus/:ownership

objectdata

changeStatus

v1/objectdata/changestatus/:workflowAction/:instanceStatus/:ownership

objectdata

defineVideoPoster

v1/objectdata/definevideoposter/:instanceStatus/:ownership

objectdata

delete

v1/objectdata/delete/:instanceStatus/:ownership

objectdata

editPicture

v1/objectdata/editpicture/:instanceStatus/:ownership

objectdata

editVideoChapters

v1/objectdata/editvideochapters/:instanceStatus/:ownership

objectdata

editVideoSubtitles

v1/objectdata/editvideosubtitles/:instanceStatus/:ownership

objectdata

embed

v1/objectdata/embed/:instanceStatus/:ownership

objectdata

i18nFieldsTranslate

v1/objectdata/i18nfieldstranslate/:instanceStatus/:ownership

objectdata

insert

v1/objectdata/insert/:creationMode

objectdata

manageVideoCallToActions

v1/objectdata/managevideocalltoactions/:instanceStatus/:ownership

objectdata

i18nFieldsTranslatemanageVideoRolls

v1/objectdata/i18nfieldstranslatemanagevideorolls/:instanceStatus/:ownership

objectdata

insertorder

v1/objectdata/order/insert:instanceStatus/:creationModeownership

objectdata

orderretrieveCaption

v1/objectdata/orderretrieveCaption/:instanceStatus/:ownership

objectdata

retrieveCaptionsliceVideo

v1/objectdata/retrieveCaptionslicevideo/:instanceStatus/:ownership

objectdata

update

v1/objectdata/update/:instanceStatus/:ownership

objectdata

view

v1/objectdata/view/:instanceStatus/:ownership

Find available values for modifiers

modifier

value

description

applicationName

<name>

Name of the application (BackOffice → bo...)

boardVisibility

$publicboard

A board that is not private

$privateboard

A private board

$anyvisibilityboard

A board private or not

boardType

$anyboardtype

Any type of board

<type>

A board of type <type>

creationMode

$newcreation

Only fresh new instances

$copycreation

Only copies

$anycreation

Any mode

instanceStatus

$online

An online marked state

$archived

An archived marked state

$offline

A state that is neither marked online not archived

$initialstatus

The initial state of the instance (usually = 2)

$anystatus

Any state

<customMetaStatus>

A custom meta state

<statusID>

The ID of a status

ownership

$selfowner

User must be the owner of the instance to be able to perform an action

$anyowner

No restriction on ownership

$boardcollaborator

Specific to boards domain - Identify the surfer as a collaborator on a board

workflowAction

$publish

Publishing action: performing a workflow action that will move the instance in an online marked state

$archive

Archiving action: performing a workflow action that will move the instance in an archived marked state

$forward

Forward action: performing an action marked forward, and that will not lead to online or archived marked state.

$backward

Backward action: performing an action NOT marked forward, and that will not lead to online or archived marked state.

$process

Any process action: performing that will not lead to online or archived marked state.

$anyaction

Any workflow action (including publishing and archiving actions)

<actionName>

If none of the above keywords, the action name is taken as is and resolved base on the instance’s workflow