Autor Thema: Welche Rollen greifen bei mehreren Gruppenzugehörigkeiten ?  (Gelesen 1524 mal)

Offline LN4ever

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 505
  • Geschlecht: Männlich
Hallo,

mein Problem besteht darin, daß ich die Situation schwer austesten kann, ohne mich selbst auszuschliessen; daher frage ich hier die Experten.

Ich habe zwei Gruppen im NAB, nennen wir sie

Gesamtabteilung und Unterabteilung.

Die Gruppe UNTERABTEILUNG ist in der rekursiven Auflösung der Gruppe GESAMTABTEILUNG enthalten.

Gesamtabteilung hat als ACL-Eintrag in einer Datenbank geringere (Basis)Rechte (Leser) als der ACL-Eintrag Unterabteilung (Autor). Aber GESAMTABTEILUNG hat eine Rollenzuweisung, die UNTERABTEILUNG nicht hat.

Ein Mitarbeiter von UNTERABTEILUNG erhält seine Basisrechte (Autor) aus der Gruppenzugehörigkeit mit dem höheren Basisrecht.

Ist sichergestellt, daß er ALLE Rechte (also auch die Rollen) nur aus diesem ACL-Eintrag erhält oder werden die Rollen als Summe der Rollen aus allen Einträgen, in denen er Mitglied ist, gebildet ?

Hintergrund: ich möchte die Navigationssteuerung über Outlines so gestalten, daß Mitglieder bestimmter Rollen einen reduzierten Ausschnitt bzw. sogar einen anderen Satz von Ansichten angeboten bekommen, während die Ersteller von Dokumenten (Unterabteilung) den vollständigen Satz erhalten.

Dafür muß sichergestellt sein, daß in der @UserNamesList-Rückgabe die spezielle Rolle NICHT enthalten ist, die das Heranziehen einer anderen Outline steuert. Für diejenigen, die es interessiert: Hier der Code, mit dem ich die Bestimmung der Outlines steuere. Es gibt dabei in einem Profildokument einen Default_eintrag und einige Einträge nach dem Muster

[Spezialrolle1] | outline1deutsch | outline1englisch
[Spezialrolle2] | outline2deutsch | outline2englisch


_outlineDefault:=@If(Dialogsprache="D";@GetProfileField(d_Setupform;"SetupStartNavigator");@GetProfileField(d_Setupform;"SetupStartNavigatorE"));
_outlinespec:=@GetProfileField(d_Setupform;"SetupFSSpecial");
_outlinespecRoles:=@Trim(@Left(_outlinespec;"|"));
_outlinespecEN:=@Trim(@RightBack(_outlinespec;"|"));
_outlinespecDE:=@Trim(@Right(@LeftBack(_outlinespec;"|");"|"));
_outlinespec:=@If(Dialogsprache="D";@If(_outlinespecDE="";_outlinespecEN;_outlinespecDE);@If(_outlinespecEN="";_outlinespecDE;_outlinespecEN));
_UNL:=@If(@Trim(_outlinespec)="";"";@Trim(@Left((@UserNamesList);"]")));
_UNL1:=@If(_UNL="";"";_UNL+"]");
_PassendeRollen := @Trim(@Transform(_UNL1;"var";
@If(@IsMember(var;_outlinespecRoles);var;"")));
_PlatzinRollen:=@Transform(_PassendeRollen;"var";@Member(var;_outlineSpecRoles));
_outlineNamentmp:=@If(_PlatzInRollen=0;"";@Transform(_PlatzinRollen;"var";
@Subset(@Subset(_outlinespec;var);-1)));
_outlineNamen:=@Trim(@Unique(_outlineNamentmp));
@If(_outlinenamen="";_outlinedefault;_outlinenamen)

Dank und Gruß

Norbert


Situs vilate in isse tabernit.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz