- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Permission via API setzen
Hallo zusammen,
ich versuch รผber die Beanshell Console folgendes Script auszufรผhren, leider haue ich mir immer alle Berechtigungen weg.
Die Berechtigungen wurden รผber das CMS_INPUT_PERMISSION gesetzt und einige der gesetzten Berechtigungen mรถchte ich wieder wegnehmen.
Ich wรผrde behaupten, zwischen setAllow und setMetaFormData mรผsste ich noch sicherstellen das die รnderungen in das DataForm(meta) geschrieben wird.
Server-Version: 5.0.606.65744
e.setLock(true, false);
meta=e.getMetaFormData();
perms=meta.get(context.getProject().getMasterLanguage(),"roles").get();
roles = perms.getAllowed("access");
roles.remove("RollenName");
perms.setAllowed("access",roles);
// roles hat noch die Werte die ich haben mรถchte
//nach setAllowed sind am meta Objekt alle Permissions weg.
//Hier muss ich noch etwas anderes machen , denn editot holen?
//Wenn ja wie?
e.setMetaFormData(meta);
e.save("Wiegele beanshell");
e.setLock(false, false);
Danke fรผrs lesen.
- Labels:
-
Developers
- Tags:
- script
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo zusammen,
danke an Herrn Hofmann, fรผr die richtige Lรถsung.
Es ist in der Tat so, dass getAllowed lediglich die Berechtigungen OHNE den kompletten Pfad zurรผckliefert (=> works as specified).
Den Rest bekommt man รผber PermissionService.
Hier ein Beispiel, das in Ihrem Fall funktionieren sollte:
projectID = context.getProject().getId();
connection = context.getConnection();
project = connection.getProjectById(projectID);
userService = project.getUserService();
permServ = context.getConnection().getService("PermissionService");
permServ.getRoot("MeinDokument").getGroupById("meineRolle").getPath();
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo zusammen,
keiner eine Ahnung, ob ich etwas falsch mache oder es sich um einen Bug handelt?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Jan,
ich sehe leider nicht, das mir das Posting weiterhelfen kรถnnte
In dem Posting geht es um Redakteursberechtigungen, bei mir geht es um Berechtigungen fรผr ein SAP Portal die รผber die CMS_INPUT_PERMISSION gesetzt werden.
Gruร Dirk
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Dirk,
Ok, ich sehe in deinem Skript erstmal keinen Fehler. Kannst du mal ausprobieren, ob du an den permissions etwas anderes setzen kannst und ob das ankommt? zb setInherited(true/false);
Grรผรe
Jan
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Jan,
nein setInherited kann ich auf true oder false setzten, bringt nichts
e.setLock(true, false);
meta=e.getMetaFormData();
perms=meta.get(context.getProject().getMasterLanguage(),"roles").get();
perms.setInherited(true); oder perms.setInherited(false); bringen nichts
e.setMetaFormData(meta);
e.save("Wiegele beanshell");
e.setLock(false, false);
Gruร Dirk
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Jan,
scheinbar habe ich etwas รผbersehen.
perms.setInherited(true); oder perms.setInherited(false); funktioniert doch.
e.setMetaFormData(meta);
e.save("Wiegele beanshell");
e.setLock(false, false);
Sobald ich versuche die Methode setAllowed zu verwenden sind die getAllowed Berechtigungen weg.
perms.setAllowed("access",roles);
Gruร Dirk
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Jan,
ich denke den Fehler gefunden zu haben.
Mit perms.getAllowed("access"); geht leider das Prรคfix der Berechtigung verloren.
Prรคfix "/Docname1/Docname2/Docname3/"
Eigentliche Berechtigung "Berechtigung1"
"/Docname1/Docname2/Docname3/Berechtigung1"
Die Ausgabe von formdata liefert im Okay Fall:
<<TEMPLATECONTENT><CMS_VALUE name="roles"><LANG id="ยง" set="1"><PERMISSIONS document="documentName" inherit="0" priority="allow"><OPERATION deselected="" name="access" selected="/Docname1/Docname2/Docname3/Berechtigung1"/></PERMISSIONS></LANG></CMS_VALUE><CMS_VALUE name="fs_portal_cm_modified"><LANG id="ยง" set="0"/></CMS_VALUE><CMS_VALUE name="fs_portal_cm_contenttype"><LANG id="ยง" set="0"/></CMS_VALUE><CMS_VALUE name="fs_portal_mdkm_editor_id"><LANG id="ยง" set="0"/></CMS_VALUE><CMS_VALUE name="childCount"><LANG id="ยง" set="0"/></CMS_VALUE></TEMPLATECONTENT>>
In dem TreeSet stehen aber die Berechtigungen ohne Prรคfix.
roles = perms.getAllowed("access");
<[Berechtigung1]>
Nach dem Speichern, werden die Werte auch รผbernommen, passen aber nicht zu der Konfiguration vom CMS_INPUT_PERMISSION und somit sieht es aus als wรคren alle Berechtigungen gelรถscht worden.
Sieht nach BUG aus.
getAllowed muss die richtigen Werte liefern.
Gruร Dirk
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Dirk,
benรถtigst Du noch weitere Hilfe oder haben Dir die Antworten von Jan und TechnicalSupport bereits geholfen?
In diesem Fall wรคre es super, wenn Du die "richtige Antwort" entsprechend markierst, damit auch andere Community-Teilnehmer diese auf den ersten Blick finden. Solltest Du zwischenzeitlich eine eigene Lรถsung gefunden haben, wรคre es nett, wenn Du diese hier bereitstellst.
Viele Grรผรe
Marian
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo zusammen,
danke an Herrn Hofmann, fรผr die richtige Lรถsung.
Es ist in der Tat so, dass getAllowed lediglich die Berechtigungen OHNE den kompletten Pfad zurรผckliefert (=> works as specified).
Den Rest bekommt man รผber PermissionService.
Hier ein Beispiel, das in Ihrem Fall funktionieren sollte:
projectID = context.getProject().getId();
connection = context.getConnection();
project = connection.getProjectById(projectID);
userService = project.getUserService();
permServ = context.getConnection().getService("PermissionService");
permServ.getRoot("MeinDokument").getGroupById("meineRolle").getPath();

