Domino 9 und frühere Versionen > ND6: Entwicklung
Rolle von User auslesen
koehlerbv:
Volle Zustimmung, Norbert. Es ist ja nach wie vor unklar, *was* wirklich *wann/unter welchen Bedingungen* *genau* erfolgen soll.
Und mit dem gefundenen Konstukt kann sehr viel schief gehen: ComputeWithForm hast Du schon erwähnt, wie schnell ist ein @Command ([ToolsRefreshSelectedDocs]) vom Admin eingesetzt, ein User hat mehr als eine OE_-Rolle usw.
Solange unbekannt ist, was wirklich erreicht werden soll, sind wirklich hilfreiche Antworten (die erstmal ja mehr in Richtung Architektur gehen müssen) nahezu unmöglich. Das "Erledigt"-Symbol vor dem Thread halte ich daher auch für verfrüht - vor allem in Hinsicht darauf, dass hier in Zukunft auch andere auf den Thread stossen werden und denen dann ggf. suggeriert wird: "So macht man das.". Das "Was" ist ja noch immer unklar ...
Bernhard
awagner:
Guten Morgen zusammen,
Aufgabenstellung ist es, das Leute Dokumente aus einer Datenbank nur dann Lesen bzw. Bearbeiten dürfen, wenn dieses Dokumente jemand aus seiner Abteilung erstellt hat.
Ein User kann höchstens 3 Rollen haben (siehe unten), aber nur eine OE_-Rolle!
Es gibt jetzt folgende Felder, die die Berechtigung steuern.
f_Full - - - Rolle [FULL]; Autorenfeld; diese Rolle hat auf alle Dokumente Schreibrecht
f_Read - - - Rolle [READ]; Leserfeld; diese Rolle hat auf alle Dokumente Leserechte
f_OE - - - Rolle [OE_*]; Autorenfeld; diese Rolle hat auf die Dokumente aus der eigenen Abteilung Schreibrechte
Die Felder werden alle beim Anlegen berechnet.
In dieser Datenbank wird es (vorerst) keine Agenten geben, oder irgendwelche große Funktionen, wo die ComputeWithForms-Problematik auftauchen könnte.
@Bernhard: LotusScript kommt für mich auch in Frage, ich dachte mir nur, dass es vll. in Formel leichter wäre ;)
@Norbert: Habe das Erledigt-Symbol wieder entfernt.
Gruß Andi
eknori:
Wenn es immer nur eine Rolle mit f_OE... gibt, dann würde ich es mit script machen:
etwa so:
Dim session As New NotesSession
Dim db As NotesDatabase
Dim acl As NotesACL
Dim entry As NotesACLEntry
Set db = session.CurrentDatabase
Set acl = db.ACL
Set entry = acl.GetEntry( session.UserName )
Forall r In entry.Roles
if instr(cstr(r),"f_OE") > 0 then
' .... schreibe die Rolle in Feld
end if
End Forall
awagner:
Die User sind aber nicht namentlich in der ACL drin, sondern immer als Gruppe, die zu einer Rolle gehört.
und mit dem Befehl acl.GetEntry( session.UserName ) frage ich ja immer nur auf einen eindeutigen Namen ab.
Bei mir kommt es beim Schleifen-Start zu nem Laufzeit-Fehler "Object Variabel Not Set".
von dem her wird das wohl nicht so klappen, oder liege ich da jetzt falsch?
eknori:
Gucke mal hier.
Evtl kommt du damit weiter
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln