Durchsuchbare Dokumentation aufrufen | Zurück zur Dokumentationsübersicht

Navigation: Dokumentationen agorum core > agorum core für Entwickler > agorum core JavaScript-API


JavaScript-Bibliothek common/permissions

Diese JavaScript-Bibliothek bietet Funktionen, um objektspezifische Berechtigungen im Kontext des Permission Managers zu verwalten. Der Permission Manager verwaltet objektspezifische Berechtigungen auf dem jeweiligen Objekt. Dabei werden Berechtigungen (z. B. read, write, all) direkt am Objekt gespeichert und können so gezielt vergeben oder entzogen werden. Zusätzlich kann über eine Basis-ACL der grundsätzliche Zugriff definiert werden. Diese Basisberechtigung wird vererbt und gilt damit auch für untergeordnete Objekte, solange dort keine eigene Basis-ACL gesetzt wird.

Verwendung

Binden Sie die Bibliothek stets am Anfang eines Skripts ein:

let permissions = require('common/permissions');

Angabe der Berechtigungen

Bei setPermission und removePermission wird die Berechtigung als JavaScript-Objekt übergeben:

{
  granteeId: '<user>',
  permission: '<permission>'
}
Eigenschaft Beschreibung
granteeId String. ID eines Benutzers oder einer Gruppe.
permission String. Die Berechtigung.

Die erlaubten Werte werden aus den Permission-Manager-Definitionen geladen: none, read, write, all, check_out, protected.

Funktionen

setPermission

Setzt (ergänzt) eine Berechtigung für einen Benutzer oder eine Benutzergruppe direkt auf dem Objekt. Es kann immer nur eine Berechtigung pro Aufruf gesetzt werden. Mehrere Berechtigungen müssen nacheinander gesetzt werden.


Syntax

permissions.setPermission(objectId, permissionJson);


Parameter

Parameter Beschreibung Pflicht Standard
objectId String. ID des Objekts. ja
permissionJson JSON. Siehe Angabe der Berechtigungen. ja -


Beispiel

let objects = require('common/objects');
let permissions = require('common/permissions');

permissions.setPermission('1587894', {
  granteeId: 'user:mbauer',
  permission: 'read'
});


Rückgabewerte

Kein Rückgabewert.


Exceptions

Bei Fehlern wird eine Exception geworfen und der Aufruf abgebrochen.

getPermissions

Liest alle direkt auf dem Objekt gesetzten Berechtigungen.


Syntax

let allPermissions = permissions.getPermissions(objectId);


Parameter

Parameter Beschreibung Pflicht Standard
objectId String. ID des Objekts. ja


Rückgabewert

Array von Objekten:

[
  {
    granteeId: '497086d0-85bb-11e8-9c07-123456789012',
    permission: 'read'
  }
]


Beispiel

let objects = require('common/objects');
let permissions = require('common/permissions');

let allPermissions = permissions.getPermissions('1587894');

allPermissions;

removePermission

Entfernt eine direkt gesetzte (nicht vererbte) Berechtigung auf dem übergebenen Objekt.


Syntax

permissions.removePermission(objectId, permissionJson);


Parameter

Parameter Beschreibung Pflicht Standard
objectId String. ID des Objekts. ja
permissionJson JSON. Siehe Angabe der Berechtigungen. ja


Rückgabewert

Kein Rückgabewert.


Exceptions

Bei Fehlern wird eine Exception geworfen und der Aufruf abgebrochen.


Beispiel

let objects = require('common/objects');
let permissions = require('common/permissions');

permissions.removePermission('1587894', {
  granteeId: 'user:mbauer',
  permission: 'read'
});

removeAllPermissions

Entfernt alle direkt auf dem Objekt gesetzten Berechtigungen. Vererbte Berechtigungen bleiben bestehen.

 

Syntax

permissions.removeAllPermissions(objectId);

 

Parameter

Parameter Beschreibung Pflicht Standard
objectId String. ID des Objekts. ja


Rückgabewert

Kein Rückgabewert.


Exceptions

Bei Fehlern wird eine Exception geworfen und der Aufruf abgebrochen.


Beispiel

let objects = require('common/objects');
let permissions = require('common/permissions');

permissions.removeAllPermissions('1587894');

setBaseAcl

Setzt eine Basis-ACL-Konfiguration auf ein Objekt, die als Grundlage für die Verwaltung der Berechtigungen auf Objektebene dient.


Syntax

permissions.setBaseAcl(objectId, aclName);


Parameter

Parameter Beschreibung Pflicht Standard
objectId String. ID des Objekts. ja
aclName String. Name einer existierenden ACL.

Wenn aclName leer oder null ist, wird die Permission-Manager-Konfiguration entfernt. Die ACL am Objekt selbst wird dabei nicht automatisch entfernt.

nein null


Rückgabewert

Kein Rückgabewert.


Beispiel

let permissions = require('common/permissions');

permissions.setBaseAcl('bd44b560-16e3-11f1-b061-02420a0a0012', 'private-admin-affected');

getBaseAcl

Gibt den Namen der Basis-ACL zurück, die auf ein Objekt gesetzt wurde. Ist keine Basis-ACL direkt gesetzt, wird die vererbte Basis-ACL zurückgegeben (oder ein leerer String).


Syntax

let aclName = permissions.getBaseAcl(objectId);


Parameter

Parameter Beschreibung Pflicht Standard
objectId String. ID des Objekts. ja


Rückgabewert

String. Name der ACL oder leerer String.


Beispiel

let objects = require('common/objects');
let permissions = require('common/permissions');

let aclName = permissions.getBaseAcl('1587895');

aclName;

Blocker: getBlocks / setBlock / removeBlock

Blocker dienen dazu, die Vererbung von Berechtigungen gezielt zu unterbrechen – und zwar pro Berechtigung (z. B. nur read oder nur all) und nicht pro Benutzer/Gruppe.

Hinweise:

  • Blocker werden typischerweise verwendet, um ab einem bestimmten Ordner/Objekt mit einer Berechtigung „neu zu beginnen“ (z. B. Vererbung von read unterbrechen und darunter eigene Leser definieren).
  • Blocker wirken auf die Vererbung unterhalb des Objekts. Bereits direkt auf dem Objekt gesetzte Berechtigungen bleiben davon unberührt.

getBlocks

Gibt alle Berechtigungen zurück, für die auf dem Objekt ein Blocker gesetzt ist.


Syntax/Beispiel

let permissions = require('common/permissions');

let blockedPermissions = permissions.getBlocks('bd44b560-16e3-11f1-b061-02420a0a0012');

blockedPermissions;


Parameter

Parameter Beschreibung Pflicht Standard
objectId String. ID des Objekts. ja

 

Rückgabewert

['read', 'all']

setBlock

Setzt einen Blocker für eine Berechtigung, wodurch die Vererbung für diese Berechtigung effektiv komplett unterbrochen wird.


Syntax/Beispiel

let permissions = require('common/permissions');

permissions.setBlock('bd44b560-16e3-11f1-b061-02420a0a0012', 'write');


Parameter

Parameter Beschreibung Pflicht Standard
objectId String. ID des Objekts. ja
permission String. Die Berechtigung, für die die Vererbung unterbrochen werden soll (z. B. read oder all). ja

removeBlock

Entfernt den Blocker für eine Berechtigung. Danach kann die Vererbung für diese Berechtigung wieder greifen (abhängig von den übergeordneten Definitionen).


Syntax/Beispiel

let permissions = require('common/permissions');

permissions.removeBlock('bd44b560-16e3-11f1-b061-02420a0a0012', 'all');

 

Parameter

Parameter Beschreibung Pflicht Standard
objectId String. ID des Objekts. ja
permission String. Die Berechtigung, für die der Blocker entfernt werden soll. ja