Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: DatenDuck am 15.01.07 - 12:15:16

Titel: Rolle aus anderer Datenbank auslesen?
Beitrag von: DatenDuck am 15.01.07 - 12:15:16
Hallo Forum,

über Evaluate( |@IsMember("| & role & |"; @UserRoles)| ) lässt sich ja ganz schön prüfen ob der Benutzer eine Rolle zugewiesen hat oder nicht.

Wie liesse sich so eine Prüfung in einer anderen DB ausführen?
Evaluate(formel, db) funktioniert leider nicht...
Gibt es überhaupt eine Möglichkeit oder muss mit Script die ACL zerpflückt werden?

Vielen Dank schon mal für die Hilfe!

Bis dann,
-Moritz
Titel: Re: Rolle aus anderer Datenbank auslesen?
Beitrag von: Axel am 15.01.07 - 12:37:54
oder muss mit Script die ACL zerpflückt werden?

Genau so.

Anders geht's nicht.

Axel
Titel: Re: Rolle aus anderer Datenbank auslesen?
Beitrag von: Glombi am 15.01.07 - 12:44:29
Idee:
Du kannst in der anderen Datenbank ein vorhandenes Dokument öffnen. Das Dokument basiert auf einer Maske, in der ein Reld "UserRoles" ist, welches Berechnet zur Anzeige ist.
D.h. der Wert wird zur Laufzeit berechnet. Diesen kannst Du mit Script auswerten, wenn das Dokument geöffnet ist.
Nach dem Öffnen des Dokuments und Auslesen der Rollen dann das Dokument sofort wieder schließen.

Andreas
Titel: Re: Rolle aus anderer Datenbank auslesen?
Beitrag von: DatenDuck am 10.01.08 - 11:17:20
Hi Andreas,

habe Deinen Vorschlag mal getestet und stoße dabei auf ein Problem.

Beim "DB Wechsel" (weil ich ja das UIDoc aus einer anderen DB öffne, als die in der der mein Agent gerade läuft) "verliert" der Agent irgendwie den Bezug auf seine eigene DB...
Beim anschließenden Aufruf von db.UnprocessedDocuments kommt dann eine Meldung "Can't get left-to-do list, Database <meineErsteDB> is not the agent's database"...
Laut Debugger ist die Variable "db" allerdings SCHON die korrekte DB des Agenten... Und auch die Instanz der anderen DB aus der ich die Rollen hole ist richtig... Also zumindest laut dem was der Debugger zu den beiden Variablen anzeigt...

Ich hab mich irgendwie schon damit abgefunden, dass mein Vorhaben nicht realisierbar ist.. Aber falls Du nochn Tipp hierzu hast, nur raus damit  ;D

Bis dann,
-Moritz
Titel: Re: Rolle aus anderer Datenbank auslesen?
Beitrag von: ata am 10.01.08 - 12:04:09
... das verstehe ich nicht ganz - du ziehst dir aus der fernen Datenbank ein belibiges Dokument per Backend und wendest den Evaluate an - wie es Andreas beschrieben hat - wo gibt es da ein Problem???

Toni
Titel: Re: Rolle aus anderer Datenbank auslesen?
Beitrag von: DatenDuck am 10.01.08 - 12:10:35
Jo, ganu so mach ich das.
1. Ferne DB holen
2. Doc erstellen (und Maske zuweisen)
3. Doc ins UI laden
4. Zur Anzeige berechnetes Feld mit @UserRoles Inhalt holen (variant = uidoc.Document.fieldRollen)
5. UIDoc schließen
6. Checken ob Rolle in der Liste ist
7. Wenn ja, in aktueller(!) DB weiter mit db.UnprocessedDocuments. >> Bumm
Titel: Re: Rolle aus anderer Datenbank auslesen?
Beitrag von: ata am 10.01.08 - 12:14:09
Zitat
2. Doc erstellen (und Maske zuweisen)

Dazu brauchst derjenige aber mindestens Autorenrecht...

Toni
Titel: Re: Rolle aus anderer Datenbank auslesen?
Beitrag von: DatenDuck am 10.01.08 - 12:15:22
Das ist auch der Fall  ;)
Titel: Re: Rolle aus anderer Datenbank auslesen?
Beitrag von: ata am 10.01.08 - 12:15:37
... sorry - warum ins UI holen und gleich weider schließen - ein Evaluate liefert dir die Liste der Rollen als Array?

Toni

Titel: Re: Rolle aus anderer Datenbank auslesen?
Beitrag von: DatenDuck am 10.01.08 - 12:18:22
Meinst Du
Evaluate( |@IsMember("| & role & |"; @UserRoles)| )
?
Das gibt mir doch nur die Rollen zurück die ich in der aktuellen DB und nicht in der entfernten DB habe?!
Titel: Re: Rolle aus anderer Datenbank auslesen?
Beitrag von: ata am 10.01.08 - 12:23:28
... mit ...

Code
Dim vRoles As Variant 
vRoles = Evaluate( {@UserRoles} , docFerneDB )

... erhälst du die Rollen des Users. Dann noch prüfen, ob deine gesuchte Rolle darin enthalten ist:

Code
If Not IsNull( ArrayGetIndex( vRoles , "[DeineRolle]" ) ) Then...

... sollte dann klar sein, ob er zutrifft

Toni
Titel: Re: Rolle aus anderer Datenbank auslesen?
Beitrag von: DatenDuck am 10.01.08 - 12:40:58
Hrr... Du Angeber!!! Funktioniert natürlich...   :D :D :D

Vielen Dank!