Martin_Dirlewan
Returning Observer

API (Script): getInheritedPrincipalPermissions() liefert auch direkt definierte Berechtigungen nicht nur vererbte

Jump to solution

Hallo,

die Funktion "storeElement.getInheritedPrincipalPermissions()" sollte nach meinem Verständnis nur die Berechtigungen der vererbten Rechte zurückliefern.

Leider liefert diese mir auch eine Berechtigung eines Benutzers der definitiv nur direkt beim Element gesetzt ist und somit nur bei der Funktion "store.getDefinedPrincipalPermissions()" zurückgeliefert werden sollte.

Habe ich hier einen Denkfehler?

FS Version Server: 4.2.454.47473

Beispiel Code:

String debugStr = "";

// In diesem Objekt definierte Rechte.

List definedPrincipalPermissions = storeElement.getDefinedPrincipalPermissions();

Iterator definedPrincipalPermissionsIterator = definedPrincipalPermissions.iterator();

while (definedPrincipalPermissionsIterator.hasNext())

{

    Principal principal = (Principal)definedPrincipalPermissionsIterator.next();

    debugStr += "definedPrincipal:" + principal.getName() + "\n";

}

// Geerbte Rechte.

List inheritedPrincipalPermissions = storeElement.getInheritedPrincipalPermissions();

Iterator inheritedPrincipalPermissionsIterator = inheritedPrincipalPermissions.iterator();

while (inheritedPrincipalPermissionsIterator.hasNext())

{

    Principal principal = (Principal)inheritedPrincipalPermissionsIterator.next();

    debugStr += "inheritedPrincipal:" + principal.getName() + "\n";

}

Viele Grüße

Martin Dirlewanger

0 Kudos
1 Solution

Accepted Solutions
Peter_Jodeleit
Crownpeak employee

In der Doku steht: "Returns a list of Principal Principal's for which permissions are defined at this storelement includ...", spich: Es werden die effektiv wirksamen Rechte geliefert. Also definiertes und erwartetes Verhalten. "getDefinedPrincipalPermissions" liefert im Gegensatz dazu die explizit am Knoten definierten Rechte.

Die geerbten Rechte kommt man also über storeElement.getParent().getInheritedPrincipalPermissions().

Peter

View solution in original post

0 Kudos
2 Replies
Peter_Jodeleit
Crownpeak employee

In der Doku steht: "Returns a list of Principal Principal's for which permissions are defined at this storelement includ...", spich: Es werden die effektiv wirksamen Rechte geliefert. Also definiertes und erwartetes Verhalten. "getDefinedPrincipalPermissions" liefert im Gegensatz dazu die explizit am Knoten definierten Rechte.

Die geerbten Rechte kommt man also über storeElement.getParent().getInheritedPrincipalPermissions().

Peter
0 Kudos

Vielen Dank Smiley Happy

0 Kudos