Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: cubetoon am 14.07.05 - 15:30:52

Titel: Gruppenmitgliedschaft eines bestimmten Users abfragen
Beitrag von: cubetoon am 14.07.05 - 15:30:52
Hallo zusammen,
bin gerade mal wieder am verzweifeln. Gibt es denn keine AT-Funktion mit der ich abfragen kann in welcher Gruppe sich ein bestimmter Benutzer befindet?
Habe schon die Funktion @UserNamesList versucht allerding erhalte ich dort ja nur die Gruppen (+Rollen) des aktuellen benuters zurück geliefert. Ich benötige aber eine Funktion in der ich den Hierarchischen Namen eines Benutzers übergebe und dessen Gruppenmitgliedschaft ermittle.

Hintergrund (für Interessierte) - ich möchte einen Agent schreiben, der Erinnerungen an Geburtstage aller Benuter versendet. Jeder einzelne Benutzer soll aber selbst Filtern können an welche Geburtstage er erinnert werden will - indem er eben einfach in eine Liste den Benutzer oder Gruppennamen schreibt (auswählt).

Würde das gern mit Formelsprache lösen, da ich bemerkt habe, dass ich viel zu schnell zu Lotus Script gewandert bin - das wäre mir beim ND610-Test fast auf die Füße gefallen. Einen lookup via LS in das names.nsf und dort die Daten auslesen sollte ich hinkriegen, hätte es aber aus o.g. Grund lieber in @Formulalanguage gelöst :)
Vielen Dank und einen schönen Sommertag
Christian
Titel: Re: Gruppenmitgliedschaft eines bestimmten Users abfragen
Beitrag von: koehlerbv am 14.07.05 - 17:39:39
Christian, in Ermangelung einer passenden @function oder (mit den vorhandenen) in Ermangelung einer entsprechenden Ansicht im DD wirst Du da keine Freude haben. Zudem kannst Du auf nested groups treffen, und da bist Du dann mit @functions vollkommen erschossen.

Ergo: Mach's mit LS - es gibt, soweit ich das aus Deinem Posting lese, keine vernünftigen Gründe dagegen.

Bernhard
Titel: Re: Gruppenmitgliedschaft eines bestimmten Users abfragen
Beitrag von: machineslave am 14.07.05 - 17:44:08
Hallo Christian,

diese Anforderung hatten wir auch schonmal. Wir haben das wie folgt gelöst:
Eine zusätzliche (versteckte) Ansicht in der names.nsf anlegen.

View selection:
SELECT Type = "Group" & GroupType!="3" & Form="Group"

Spalte 1 (sortiert): @Name([CANONICALIZE];members + "/")
Spalte 2: ListName

Dann bekommst Du über einen @DBLookup eine Liste aller Gruppen zurück.

Gruß

Stefan
Titel: Re: Gruppenmitgliedschaft eines bestimmten Users abfragen
Beitrag von: machineslave am 14.07.05 - 17:45:06
Ehm, das, was ich da grad geschrieben habe, funktioniert ebenfalls nicht mit nested groups
Titel: Re: Gruppenmitgliedschaft eines bestimmten Users abfragen
Beitrag von: koehlerbv am 14.07.05 - 17:49:03
Hallo Stefan,

nested groups ist bei dem Verfahren nur das eine Problem (aus meiner Sicht), das andere sind die (berechtigten) Sorgen der Admins, die dann dem Entwickler schon mal gern nachts in einer dunklen Nebenstrasse mit einer massiven Bohle in der Hand auflauern ... Am DD rumfummeln ist eben immer so eine Sache, für die sich der Aufwand auch wirklich lohnen muss. Und das sehe ich hier nicht gegeben, da es nur um @function vs. LS geht.

Bernhard
Titel: Re: Gruppenmitgliedschaft eines bestimmten Users abfragen
Beitrag von: cubetoon am 15.07.05 - 08:53:35
Guten morgen,
vielen Dank für Euer Feedback und auch vielen Dank für Euren Einwurf zu den Nested Groups - daran habe ich ja noch gar nicht gedacht - auf zur Iterationsprogrammierung und back to LS  :o
LG
Christian
Titel: Re: Gruppenmitgliedschaft eines bestimmten Users abfragen
Beitrag von: Axel am 15.07.05 - 10:30:06
Hi,

ich bin zufällig im Web auf das hier gestoßen:

Expand group members and nested groups in @formula (http://searchdomino.techtarget.com/tip/1,289483,sid4_gci1078156,00.html?FromTaxonomy=%2Fpr%2F283836)

Es ist nicht ganz das was du brauchst, aber vielleicht kannst du es als Lösungsansatz brauchen und entsprechend umbauen.

Axel
Titel: Re: Gruppenmitgliedschaft eines bestimmten Users abfragen
Beitrag von: machineslave am 15.07.05 - 10:30:22
Hi Bernhard,

na dann hab ich ja Glück, dass ich mich mit unserem Admin gut verstehe, der haut mir nur dreimal leicht auf den Kopf.

Stefan
Titel: Re: Gruppenmitgliedschaft eines bestimmten Users abfragen
Beitrag von: cubetoon am 18.07.05 - 10:50:45
Hallo zusammen,
so schwierig war das ganze dann doch wieder nicht in der Formelsprache abzubilden - zum Glück gibt es ja das neue @For Statement in der 6er Version und die Conditions werden auch noch dynamisch geprüft!

Code
Addressbook:="Server":"names.nsf";
Name:="CN=Name/O=Organisation";
Group:="Gruppe1":"Gruppe2";

@For(n := 1;
n<=@Count(Group);
n:=n+1;
		@Do(
			@If(@Contains (Group[n];"/");NULL;
					Group:=Group:@DbLookup("":"";Addressbook;"Groups";Group[n];"Members")
			)
		)
);



@If(@IsMember (Name;Group);@Prompt([Ok];"";"SendMail");NULL)

That's all! Allerdings habe ich wahrscheinlich die Anforderung etwas falsch formuliert - ich muss nur wissen, ob sich der gegebene Benutzername in einer der ebenfalls gegebenen Gruppen befindet - das macht die Sache wohl einfacher - hatte ich nur zu beginn noch nicht so gesehen bzw. dort hätte ich ja schon eine fertige Funktion gesucht.
Viele Grüße
Christian