cancel
Showing results for 
Search instead for 
Did you mean: 

LDAP Gruppen und Systemgruppen

kaguro
Champ in-the-making
Champ in-the-making
Hallo,

ich habe einen alfresco-server aufgesetzt mit der Version 4.2.c und auch mit dem LDAP verbunden. Nun möchte ich auf einer Wiki-Page von einer Seite die Rechte ändern. Auf die Wiki-Page gehe ich über das Repository ( Repository > Sites > siteName > wiki > test ). Nun gehe ich bei den Dokumentenaktionen auf "Berechtigungen verwalten" und stelle die Vererbung der Rechte ab und dann auf "Benutzer/Gruppe hinzufügen" klicke, dann den Namen einer Gruppe VON DER SEITE eingebe, findet der keine. Es werden nur die Gruppen aus dem LDAP gefunden und die Gruppe EVERYONE(JEDER).
Ich möchte aber nicht nur die Gruppen aus dem LDAP sondern auch die Systemgruppen(alfresco).

Vielen Danke im voraus. Smiley Wink
4 REPLIES 4

heiko_robert
Star Collaborator
Star Collaborator
Sites, Berechtigungen und Site-Gruppen ist so ein Thema für sich. Alfresco filtert die Site-Gruppen einfach in den Dialogen heraus, so dass diese gar nicht zugeordnet werden können.
Wenn Du nicht vor JavaScript zurück schreckst, wäre die einfachste Lösung, die JSConsole zu installieren und beim bewünschten Dokument einfach die Aktion "In Javascript Konsole verwenden" aufrufen und analog folgenden Befehl eingibst:
<javascript>
document.setPermission("SiteConsumer","GROUP_site_siteName_SiteConsumer")
logger.log(document.getPermissions() );
</javascript>

Den Gruppennamen könnte man sich noch aus dem Kontext dynamisch zusammen bauen, so dass dies auch bei anderen Sites funktioniert.
s. http://wiki.alfresco.com/wiki/4.0_JavaScript_API#Permission_and_Security_API
Das ist natürlich nichts für den normalen Anwender, aber ein funktionierender Notbehelf.

kaguro
Champ in-the-making
Champ in-the-making
Also ich habe nun die authority-query.get.js(…share\WEB-INF\classes\alfresco\site-webscripts\org\alfresco\components\people-finder) bearbeitet…jetzt hab ich blos 1 problem…wie kann ich an mein WebScript eine GET-Variable noch hinzufügen..ich finde die JavaScript-Datei noch, von der aus das JSON aufgerufen wird.

Hinzugefügt zu authority-query.get.js:

// nur vorläufig "!args.siteName"
if(!args.siteName)//args.siteName
{
   // vorläufig so gemacht, dass se immer für die Seite "tb-esm" angezeigt werden…
   var siteName = "tb-esm";//args.siteName;
   var roles = new Array("SiteCollaborator", "SiteConsumer", "SiteContributor", "SiteManager");
   for (i = 0; i < roles.length; i++) {
      var displayname = "site_" + siteName + "_" + roles;
      if(displayname.indexOf(args.filter) > -1)
      {
         mappings.push(
         {
            type: MAPPING_TYPE.STATIC,
            data: [
               {
               shortName: "site_" + siteName + "_" + roles,
               fullName: "GROUP_site_" + siteName + "_" + roles,
               displayName: "site_" + siteName + "_" + roles,
               description: "GROUP_site_" + siteName + "_" + roles
               }
            ],
            fn: mapGroup
         });
      }
   }
}


In der ….\share\components\people-finder\authority-finder.js gibt es in der Zeile 253 eine Stelle…aber es tut sich nicht, wenn ich da eine GET-Variable hinzufüge..XD

kaguro
Champ in-the-making
Champ in-the-making
Also ich habe jetzt eine Lösung gefunden, mtit der ich leben kann. Problem war der Parameter für die Zone, der an die JSON Datei abgerufen wird. Um mein Problem zu lösen, bin ich nun her gegangen und habe diese Code-Bereich auskommentiert:


if (authorityType === "all" || authorityType === "group")
   {
      var url = "/api/groups?shortNameFilter=" + encodeURIComponent(args.filter);
      /*if (args.zone !== "all")
      {
         url += "&zone=" + encodeURIComponent(args.zone === null ? "APP.DEFAULT" : args.zone);
      }*/
   ….


Jetzt werden alle Site-Gruppen angezeigt. Also nicht nur von der aktuellen Site.

marvet
Champ in-the-making
Champ in-the-making
Diese Scripterweiterung ist genau das, was ich brauche. Mein Problem ist nun aber, wenn ich
var siteName = args.siteName;
definiere, dann erhalte ich eine null zurück oder genauer gesagt folgende Gruppe:
site_null_SiteCollaborator (GROUP_site_null_SiteCollaborator)

Woran könnte das liegen?
P.S. ich arbeite mit der Version 3.4