Domino 9 und frühere Versionen > ND9: Entwicklung

Sichtbarkeit von Outline-Einträgen von Benutzer festlegen lassen

(1/3) > >>

thomas_k:
Hallo zusammen, ich benötige wieder mal eure Hilfe!

Ich muss folgende Anforderung bearbeiten:
Ein Eintrag in einer Outline soll nur für bestimmte Personen, Gruppen bzw. Rollen sichtbar sein.
Diese Personen, Gruppen... sollen aber nicht von mir im Designer festgelegt werden, sondern soll ein bestimmter Benutzer bestimmen und ändern können.
Meine Idee hierzu wäre eine einfache Maske mit einem Feld zu erstellen. In diesem Feld wählt der bestimmte Benutzer dann alle Personen... aus welche den Eintrag in der Outline sehen dürfen.
Kann ich dann beim Outline-Eintrag mithilfe der Formelsprache auf dieses eine Feld zugreifen, um somit die Sichtbarkeit zu regeln? Wenn ja, wie?
Oder gibt's zu dieser Anforderung vielleicht andere, bessere Lösungswege?

Vielen Dank schon mal im Voraus!

koehlerbv:
Ja, sowas kannst Du machen, in dem Du die Outline in eine Maske einbettest, die das Feld mit den Zugriffsinformationen ausliest und bereitstellt.

Aber: Was willst Du damit erreichen? Was willst Du damit ggf. unsichtbar machen? Ein Outline Entry ist ja nicht der einzige Weg, wie man an Elemente einer Datenbank heran kommt. Alles lässt sich so also nicht verbergen (wenn auch manches).

Bernhard

Tode:
Also grundsätzlich würde ich eine Rolle erstellen, die Du einer Gruppe in der ACL zuweist. Jetzt gibst Du der berechtigten Person das Recht, die Gruppe zu bearbeiten geben... wie Bernhard schon sagt: security ist das nicht, aber manchmal will man ja nur übersichtlichkeit und gar nicht „echte“ Sicherheit.

Ach so: der Hidewhen geht dann auf @IsNotMember( „[Rolle]“; @UserNamesList)

Peter Klett:
Um nah an Deinem Vorschlag zu bleiben, ein Dokument zu erstellen, in dem die Zugriffsberechtigten eingetragen werden, hilft Dir vielleicht diese Formel, die sinngemäß so bei uns produktiv eingesetzt wird.


--- Code: ---_tmp := @DbColumn (""; @DbName; "vorgaben"; 1);
_tmp2 := @If (@IsError (_tmp); ""; @DbLookup (""; @DbName; "vorgaben"; _tmp [1]; "Berechtigte"));
_tmp3 := @If (@IsError (_tmp2); ""; _tmp2);
!@Username = _tmp3

oder wie Torsten schreibt

@IsNotMember (@Username; _tmp3)

--- Ende Code ---

_tmp holt sich aus einer Ansicht "vorgaben" die Schlüssel der Vorgabendokumente (es könnte z.B. nur eines in der Ansicht stehen)
_tmp2 liest sich den Inhalt des Feldes "Berechtigte" aus dem ersten Vorgabendokument
_tmp3 ist das fehlerbereinigte Ergebnis von _tmp2

Das ist nur eine mögliche Variante. In der Ansicht könnten auch die UniversalIDs stehen, dann könnte man mit @GetDocField arbeiten. Oder das Vorgabendokument hat einen festen Schlüssel, dann spart man sich das @DBColumn. Oder man nimmt ein Profildokument dafür, oder , oder ...

ronka:
Würde in den Formel
!@Username = _tmp3

in

!@Username *= _tmp3

Damit mehrfach werten kontrolliert werden anstatt einzelnwerten.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln