Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: buzzy666 am 23.11.05 - 08:04:20

Titel: Rolle eines Benutzers ermitteln
Beitrag von: buzzy666 am 23.11.05 - 08:04:20
Hi zusammen,
wie kann ich denn mit dem Namen eines Benutzers die ihm zugeordneten Rollen ermitteln, bzw. prüfen, ob er eine best. Rolle hat...?
@Userroles bringt mir ja nichts, weil ich je nicht den *aktuellen* Benutzer prüfen will, sondern den in ein Feld eingetragenen Namen eines anderen Benutzers...

Vielen Dank schon mal,
Buzzy
Titel: Re: Rolle eines Benutzers ermitteln
Beitrag von: klaussal am 23.11.05 - 08:24:25
Vielleicht hiermit:

Code
roles = notesDatabase.QueryAccessRoles( name$ )
Returns the roles of a person, group, or server in a database.
Titel: Re: Rolle eines Benutzers ermitteln
Beitrag von: buzzy666 am 23.11.05 - 08:30:00
Leider nein  :(
Die Funktion versagt, wenn der "name" nicht als Einzeleintrag in der ACL steht...

Aber danke für den Tipp,
Buzzy
Titel: Re: Rolle eines Benutzers ermitteln
Beitrag von: billygates am 23.11.05 - 08:34:46
Aus der Notes-Designer-Hilfe:

This script displays all the roles that are enabled for Bob Kidder. For example, the script might display "[Project Leader]" and "[Writer]."
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( "Bob Kidder/East/ACME" )
Forall r In entry.Roles
  Messagebox( r )
End Forall
Titel: Re: Rolle eines Benutzers ermitteln
Beitrag von: buzzy666 am 23.11.05 - 10:13:06
Das funktioniert wiederum nur, wenn die Person explizit in der ACL steht - wenn der in 'ner Gruppe drinsteht, funzt das nicht...

Gruß,
Buzzy
Titel: Re: Rolle eines Benutzers ermitteln
Beitrag von: Glombi am 23.11.05 - 10:16:39
In der Hilfe steht:

If the name you specify is listed explicitly in the ACL, then QueryAccessRoles returns the roles for that ACL entry and does not check groups.
If the name you specify is not listed explicitly in the ACL, QueryAccess checks to see if the name is a member of a group in the primary address book where the program is running: on a workstation the Personal Address Book; on a server the Domino Directory.

Also sollte es doch gehen.

Andreas
Titel: Re: Rolle eines Benutzers ermitteln
Beitrag von: mibo11 am 23.11.05 - 10:41:54
Ich tippe einmal, dass der Name, den du ausliest nicht im richtigen Format übergeben wird, also

CN=Theo Test/O=Testfirma.

Im Feld ListOwner des Gruppendokumentes (NAB) werden die Benutzer nämlich auch so gespeichert.

Gruß Sascha
Titel: Re: Rolle eines Benutzers ermitteln
Beitrag von: Axel am 23.11.05 - 12:56:18
Hi,

schau mal hier: Prüfung der Zuordnung von Rollen mit Script (http://www.free.dominoserver.de/computer/noteslibrary.nsf/d2d59a3d7fc73a2bc1256a6900638352/c91df359b64b39f1c1256e1600611883!OpenDocument).

Vielleicht hilft dir das weiter.


Axel
Titel: Re: Rolle eines Benutzers ermitteln
Beitrag von: buzzy666 am 06.12.05 - 09:21:36
Hi,

schau mal hier: Prüfung der Zuordnung von Rollen mit Script (http://www.free.dominoserver.de/computer/noteslibrary.nsf/d2d59a3d7fc73a2bc1256a6900638352/c91df359b64b39f1c1256e1600611883!OpenDocument).

Vielleicht hilft dir das weiter.


Axel


Hi,
nee, das bringt mir leider nichts, weil ich damit ja nur die Rollen des aktuellen Benutzers ermitteln kann - ich brauche die Rollen des Benutzers, der in ein Feld eingetragen wurde :-(

Danke & Gruß,
Buzzy
Titel: Re: Rolle eines Benutzers ermitteln
Beitrag von: Axel am 06.12.05 - 10:10:01
Dann versuch's doch mal hiermit:

roles = notesDatabase.QueryAccessRoles( name$ )


Andreas hat ja einen Auszug aus der Designerhilfe bereits gepostet.


Axel
Titel: Re: Rolle eines Benutzers ermitteln
Beitrag von: koehlerbv am 06.12.05 - 10:16:26
In dem von Andreas geposteten Zitat steht aber ein feiner, kleiner Nebensatz:
Zitat
where the program is running: on a workstation the Personal Address Book; on a server the Domino Directory

Wenn also das Programm auf dem Server (d.h., vom Server) ausgeführt ist, sollte es klappen. Läuft der Code auf dem Client, wird das PersNAB hergenommen, was logischerweise nix bringt.

Ich gebe QueryAccessRoles keine Chance.

Bernhard
Titel: Re: Rolle eines Benutzers ermitteln
Beitrag von: Axel am 06.12.05 - 10:49:06
Immer diese kleinen Gemeinheiten.  :o

Ist ja aber eigentlich auch logisch. Da die Funktion, wenn der Name nicht direkt in der ACL drinsteht, die Gruppen durchsucht, braucht sie dazu natürlich das entsprechende Adressbuch.

Axel