Berechtigungen

cancel
Showing results for 
Search instead for 
Did you mean: 
mhardt
Member II

Berechtigungen

Hallo.

Ich habe ein (aus meiner Sicht) alltägliches Szenario, für das ich keine Umsetzung in Alfresco finde.

Es gibt zwei Dokumententypen my:typeA und my:typeB, die von my:typeSuper abgeleitet werden. Hier das Model dazu:

  
<types>
    <type name="my:typeSuper">
      <title>Super Type</title>
      <parent>cm:content</parent>
    </type>

    <type name="my:typeA">
      <title>Type A</title>
      <parent>my:typeSuper</parent>
    </type>

    <type name="my:typeB">
      <title>Type B</title>
      <parent>my:typeSuper</parent>
    </type>

  </types>

Instanzen dieser Typen liegen in einem Projektordner "SomeFolder" unter CompanyHome und dessen Unterordnern. Die beiden Typen können gemischt in den Ordnern/Unterordnern vor kommen, d.h. sowohl Instanzen von beide gleichzeitig oder nur von einem Typ (auch mehrere pro Ordner).

Als nächstes habe ich ein PermissionModel angelegt (im Extension-Ordner), das die Rollen RoleA und RoleB kennt:


<permissions>
   
   <namespaces>
      <namespace uri="http://www.alfresco.org/model/system/1.0" prefix="sys"/>
      <namespace uri="http://www.alfresco.org/model/content/1.0" prefix="cm"/>
      <namespace uri="http://www.somedomain.org/model/my/1.0" prefix="my"/>
   </namespaces>

   <permissionSet type="my:typeA" expose="selected">
        <permissionGroup name="RoleA" expose="true" extends="false" allowFullControl="false" requiresType="true">
         <includePermissionGroup permissionGroup="Coordinator" type="cm:cmobject"/>
      </permissionGroup>
      </permissionSet>

   <permissionSet type="my:typeB" expose="selected">
        <permissionGroup name="RoleB" expose="true" extends="false" allowFullControl="false" requiresType="true">
         <includePermissionGroup permissionGroup="Coordinator" type="cm:cmobject"/>
      </permissionGroup>
      </permissionSet>

   <permissionSet type="cm:folder" expose="selected">
      <permissionGroup name="Coordinator" extends="true" expose="true"/>
      <permissionGroup name="Collaborator" extends="true" expose="true"/>
      <permissionGroup name="Contributor" extends="true" expose="true"/>
            <permissionGroup name="Editor" extends="true" expose="true"/>
      <permissionGroup name="Consumer" extends="true" expose="true"/>
      <permissionGroup name="RecordAdministrator" extends="true" expose="false"/>

        <permissionGroup name="RoleA" expose="true" extends="false" allowFullControl="false" requiresType="true">
         <includePermissionGroup permissionGroup="RoleA" type="my:typeA"/>
      </permissionGroup>
        <permissionGroup name="RoleB" expose="true" extends="false" allowFullControl="false" requiresType="true">
         <includePermissionGroup permissionGroup="RoleB" type="my:typeB"/>
      </permissionGroup>
      </permissionSet>

</permissions>

Nachdem Alfresco in dieser Konfiguration fehlerfrei hoch fährt, lege ich als admin zwei Gruppen an: gruppeA und gruppeB, in denen ein Benutzer userA bzw. userB zu finden sind. Diese weise ich über "Benutzer des Arbeitsbereiches verwalten" meinem Projektordner zu:

gruppeA –> RoleA
gruppeB –> RoleB

Meinem Projektordner entziehe ich gleichzeitig die Berechtigungen des Eltern-Arbeitsbereiches (Checkbox), sodass ich keine sonstigen Konsumenten mehr auf diesem Ordner habe.

Als admin lege ich mehrere Dokumente beider Typen direkt im Projektordner an. Nun melde ich mich als admin ab und als userA an und öffne den Projektordner. Leider sehe ich hier Instanzen beider Dokumententypen  :cry: .

Bin um jeden Hinweis dankbar!
5 Replies
lotharmärkle
Member II

Re: Berechtigungen

Hallo,

ein schöner use case ist das.

Mit welcher Alfresco Version soll das laufen? Sonst ist es schwierig da nachzusehen.

Ich habe so etwas ähnliches schon einmal umgesetzt, dabei ist mir aufgefallen, dass die permissions-Konfiguration evtl. etwas missverstanden werden kann.

Die type Angaben werden meiner Meinung/Erfahrung nach nur für mögliche Zuordnungen im UI gebraucht (Welches Recht soll man bei welchen Typen vergeben können). In der Auswertung dann später wird nur nach dem Rechte "Lesen" gefragt - wo das dann her kommt ist nicht mehr wichtig.

Dises snippet bedeutet also nicht, dass die Coordinator Rechte nur auf dem Typ my:typeA gelten sollen, sondern nur, dass dieses Recht bei my:typeA konfiguriert werden darf.

<permissionSet type="my:typeA" expose="selected">
        <permissionGroup name="RoleA" expose="true" extends="false" allowFullControl="false" requiresType="true">
           <includePermissionGroup permissionGroup="Coordinator" type="cm:cmobject"/>
      </permissionGroup>
</permissionSet>

FilA und FileB, beide mit Vererbung und ohne eigene Rechte, bekommen das Lese-Recht vom Parent-Folder - den darf der userA lesen.

Soweit mein Verständnis - gerne lerne ich hier auch dazu, das ist schon eher die komplexere Ecke von Alfresco Smiley Wink

Grüße,
  lothar
mhardt
Member II

Re: Berechtigungen

Okay,

interessanter Hinweis. Vielleicht bin ich ja auch an der ganz falschen Stelle am schrauben.

Dann frage ich mal anders rum: Was muss ich tun, wenn systemweit (= nicht nur auf einem bestimmten Verzeichnisbaum) Dokumenten-Instanzen vom Typ my:typeA nur für UserA bzw GruppeA sichtbar sein und my:typeB-Instanzen nur von Benutzern in der GruppeB bearbeitbar sein sollen.

Zwei andere Dinge wären mir dabei auch noch sehr wichtig:

1) Ich möchte mir das Ganze nicht im Alfresco-Explorer "zusammenklicken", sondern irgendwo in Form einer zentralen (XML-)Konfiguration pflegen, die ich dann auch auf unterschiedlichen Servern (Entwicklung, Test, Prod) deployen kann.
2) die Berechtigungen sollten sich auf alle Zugriffsschnittstellen auswirken, d.h. egal ob über den Alfresco Explorer/Share, CIFS, WebDAV, Webscript, … zugegriffen wird.

Ich arbeite übrigens mit Alfresco 3.4 bzw. 4.0.

Gruß
Manfred
lotharmärkle
Member II

Re: Berechtigungen

Das geht imo nur mit dem Dynamic-Authorities feature, was frei übersetzt bedeutet "programmatische Rechte zur Laufzeit".

Grüße,
  lothar
mhardt
Member II

Re: Berechtigungen

Aha,

das geht dann wohl eher in diese Richtung: http://forums.alfresco.com/en/viewtopic.php?t=17436#p60903

Gibt's zu diesem Thema irgendwo eine empfehlenswerte Doku oder gar Beispiele, vielleicht so eine Art "Showcase"? Die Alfresco-Doku ist ja sehr "übersichtlich" an diesem Punkt. Mit Google hab ich jetzt nicht so wirklich was Brauchbares dazu gefunden. Wie Du schon richtig sagt, ist das wohl eher die unangenehmen, dunkle Seite von Alfresco. Zudem hasse ich es wirklich, wenn man bei den wenigen Beispielfragmenten, die man dann irgendwo findet, am SourceCode schon erkennt, dass das nie praktisch gelaufen sein kann Smiley Wink .

Gruß
Manfred
lotharmärkle
Member II

Re: Berechtigungen

Naja - da darf man wohl nicht wählerisch sein.
Wir haben etwas ähnliches mit DynamicAuthorities mit der 3.4d am laufen.

Grüße,
  lothar