Autor Thema: Ermitteln der Gruppen eines Users  (Gelesen 2189 mal)

Offline TheHessian

  • Frischling
  • *
  • Beiträge: 13
  • Geschlecht: Männlich
Ermitteln der Gruppen eines Users
« am: 13.12.05 - 12:03:41 »
Hi!

Ich suche eine Funktion oder Programmierlösung in LotusScript mit der ich eine Liste aller Gruppen eines Users im PublicAdressBook von LotusDomino bekomme.

Kennt da jemand eine elegante Lösung?
Wäre für Vorschläge dankbar!

Gruß
Marcus

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.885
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Ermitteln der Gruppen eines Users
« Antwort #1 am: 13.12.05 - 12:27:02 »
Tja, zuerst könntest Du über DB.Search( ) mit einem in etwa so aussehenden Suchstring:

Form = "Group" & @IsMember( @UserName ; Members )

alle Gruppen- Dokumente finden, in denen der User direkt drin steht.

Ab hier wird's Rekursiv:
Mit dem Ergebnis musst Du jetzt theoretisch wieder suchen, um alle Gruppen zu finden, in denen Deine gefundenen Gruppen drin stehen...usw.

Eventuell hilft Dir (in einer reinen Server- Umgebung) auch die Funktion "@UserNamesList" in einem Evaluate weiter, aber eben nur dann, wenn es sich beim User um den aktuell angemeldeten Benutzer handelt...

Gruß
Tode
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline TheHessian

  • Frischling
  • *
  • Beiträge: 13
  • Geschlecht: Männlich
Re: Ermitteln der Gruppen eines Users
« Antwort #2 am: 13.12.05 - 13:43:36 »
Die @UserNamesList Funktion ist ja wunderbar ...

aber ...

ich wollte das ganze in LotusScript abfrühstücken.
Leider finde ich kein Äquivalent zu der Funktion in LS.

 :(

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Ermitteln der Gruppen eines Users
« Antwort #3 am: 13.12.05 - 13:50:24 »
Wie Torsten schon schrieb: Nimm' Evaluate.

Bernhard

Offline TheHessian

  • Frischling
  • *
  • Beiträge: 13
  • Geschlecht: Männlich
Re: Ermitteln der Gruppen eines Users
« Antwort #4 am: 13.12.05 - 14:33:05 »
Würde ich nehmen, wenn ich in ein Document hätte - ich bin aber in einem Navigator

Glombi

  • Gast
Re: Ermitteln der Gruppen eines Users
« Antwort #5 am: 13.12.05 - 14:35:14 »
In wiefern hindert Dich der Navigator daran? Kannst Du das mal näher spezifizieren?

Andreas

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Ermitteln der Gruppen eines Users
« Antwort #6 am: 13.12.05 - 14:35:55 »
Oder anders gefragt: Wozu brauchst Du ein Dokument ?

Bernhard

Offline TheHessian

  • Frischling
  • *
  • Beiträge: 13
  • Geschlecht: Männlich
Re: Ermitteln der Gruppen eines Users
« Antwort #7 am: 13.12.05 - 14:42:04 »
Evalute braucht ein NotesDocument als 2. Argument: NotesSession.Evalute( "", doc )

Ich will aber in einem Navigator, an einer Schaltfläche bestimmen, ob die Funktion freigegeben ist für den aktuellen Benutzer oder nicht. Habe in einer Datenbank einen "Startbildschirm" (Navigator) eingebaut. Da hab ich eben kein Document als Referenz fürs Evalute.

Anhand der ACL-Rolen soll entschieden werden, ob ein User eine Funktion ausüben darf oder nicht. Wenn nun aber der User nicht explizit in der ACL drin steht, sondern nur die Gruppe, in der er Mitglied ist, muss ich doch nun wissen, in welchen Gruppen der User ist. Aber das find ich nirgends.

ACL.GetEntry( Session.CommonUsername ) liefert eben nur dann einen Entry, wenn der User explizit in der ACL aufgeführt ist. Aber wir können nicht alle 100 User in die ACL aufnehmen. Macht ja auch eigentl. keinen Sinn ...

Die Gruppen aus dem Globalen Adressbuch sind aber in die ACL eingetragen und abhängig von der Gruppenzuordnung des Users will ich nun die Rolle prüfen.

Verständlich?  ;)

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Ermitteln der Gruppen eines Users
« Antwort #8 am: 13.12.05 - 14:42:54 »
Braucht es nicht - das Object ist optional.

Bernhard

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Ermitteln der Gruppen eines Users
« Antwort #9 am: 13.12.05 - 14:52:27 »
Wozu denn eigentlich der Austand mit der Gruppen-Abfrage?

Wenn's rein um die Rollen des aktuellen User geht, nimm doch die Funktion @UserRoles.

Hier findest du dann auch noch eine Script-Lösung: Prüfung der Zuordnung von Rollen mit Script


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline MadMetzger

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.052
  • Geschlecht: Männlich
  • f.k.a. Alexis Pyromanis
Re: Ermitteln der Gruppen eines Users
« Antwort #10 am: 13.12.05 - 14:54:09 »
Aber wenn es hier um UserRollen, die in der ACL vergeben sind, geht, warum dann nicht mit @UserRoles? Das wäre doch auch wesentlich weniger aufwändig zu programmieren, da ja nach dem Feststellen der Gruppenmitgliedschaften eben diese innerhalb der ACL abgeprüft werden müssten, welche Rolle evtl. vergeben ist.

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.885
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Ermitteln der Gruppen eines Users
« Antwort #11 am: 13.12.05 - 15:34:21 »
und wieder mal ein Fall, wo man mit einer Zeile auf das Problem hätte antworten können, wenn der Frager beschrieben hätte, was er will, und nicht so ne allgemeingültige Frage gestellt hätte.

Wenn Ihr Euch angewöhnt, ganz kurz zu skizzieren, um welches Szenario es sich handelt, und was Ihr genau erreichen wollt, dann wird Euch

a) viel schneller geholfen werden.
und
b) auch geholfen, wenn Ihr möglicherweise mit Eurem Ansatz auf dem Holzweg seid.

Was Du willst sind in Script 2 Zeilen code (wenn man die Declarations mitzählt):

Dim roles as Variant
roles = EValuate( "@UserRoles" )

auf diese Roles kannst Du dann ein ArrayGetIndex o.ä. loslassen um festzustellen, ob eine bestimmte dabei ist.

Gruß
Tode
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline TheHessian

  • Frischling
  • *
  • Beiträge: 13
  • Geschlecht: Männlich
Re: Ermitteln der Gruppen eines Users
« Antwort #12 am: 13.12.05 - 15:35:47 »
hmmm ...

da hab ich wohl zu umständlich gedacht  ;D

Vielen Dank für die Tipps!
Mit dem Evalute auf @UserRoles hats geklappt.

Ich arbeite bisher sogut wie gar nicht mit "Evaluate"

Danke nochmal!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz