Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Pidray am 22.09.09 - 16:13:28

Titel: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
Beitrag von: Pidray am 22.09.09 - 16:13:28
Hi @all,

ich suche nach einer Möglichkeit, zu einer bestimmten Rolle XYZ alle User zu ermitteln, um diese dann in einem Dokument als Berechtigungsinfo anzuzeigen. Es soll ein "freundlicherer" Ersatz sein für die lapidare Info "Nur User mit der Rolle XYZ dürfen das!"

Schon einmal Danke in Voraus !

Gruß
Katrin
Titel: Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
Beitrag von: jBubbleBoy am 22.09.09 - 16:31:38
Da musst Du die ACL durchlaufen und die Einträge auf deine Rolle prüfen. Namen sind ja kein Problem aber Gruppen musst Du dann rekursive im NAB auflösen.

Ist quasi reine Fleißarbeit.
Titel: Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
Beitrag von: Pidray am 23.09.09 - 09:59:47
Danke für die schnelle Antwort "

rekursive im NAB auflösen.
was heißt das bitte ? NAB ?

und wie mache ich das ? Ich weiss nicht mal genau, nach welchen Stichpunkten ich suchen soll ...
 :-:

Gruß
Katrin
Titel: Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
Beitrag von: DAU-in am 23.09.09 - 10:44:48
Danke für die schnelle Antwort "

rekursive im NAB auflösen.
was heißt das bitte ? NAB ?

und wie mache ich das ? Ich weiss nicht mal genau, nach welchen Stichpunkten ich suchen soll ...
 :-:

Gruß
Katrin

NAB = Namens - und Adressbuch

Du musst die Gruppeneinträge, v.a. die Einträge von Gruppen in Gruppen im NAB durchgehen und nach den Personen auflösen.

Das geht über Lotus Script und ich glaube, dass du damit noch nicht soviel Erfahrung hast (deinem Posting nach).

Grüsse

Dau-in
Titel: Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
Beitrag von: Glombi am 23.09.09 - 10:58:31
Das hört sich an wie mit Kanonen auf Spatzen schießen...

Wenn es nur eine Info in einem Dokument sein soll, dann würde ich mit berechnetem Text oder einem zur Anzeige berechneten Feld arbeiten und @UserRoles auswerten.

Andreas
Titel: Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
Beitrag von: Pidray am 23.09.09 - 11:02:44
ah, danke ! Mit den Abkürzungen kenne ich mich nicht aus, habe es nur im Nachhinein anhand anderer Threads vermutet ...

Wenn ich LS verwende, ist es meist ein herumbasteln bis das herauskommt, was ich will. Da kann es schon mal von hinten durch die Brust ins Auge gehen - aber ein Treffer  ;)
(siehe meine vorherige Anfrage:    http://atnotes.de/index.php/topic,45751.msg298160.html#msg298160)

Und oft hilft mir die Designer-Hilfe oder ihr hier im Forum sehr weit. Nur diesmal steht in der Hilfe zwar, wie ich die Rolle eines Benutzers ermittle, aber nicht umgekehrt ...
Anscheinend ist es für meinen Zweck eh wie die sprichwörtliche Kanone, welche auf Spatzen schießt!

Trotzdem: Danke !

Gruß
Katrin

Titel: Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
Beitrag von: Pidray am 23.09.09 - 11:20:52
Das hört sich an wie mit Kanonen auf Spatzen schießen...
*lol* da haben wir uns wohl überschnitten

@UserRoles auswerten.
Hmm, das gibt doch nur die Rolles des aktiven Benutzers zurück, oder ?


Ich habe ein Steuerungsdokument mit mehreren Personeneinträgen für verschiedene Punkte (Personen A+B unter Punkt 1, Personen A+C+D unter Punkt 2, usw.)
In einer anderen Maske 2 gibt es die Punkte 1,2, ... welche per "Absatz verbergen" nur die Personen lt. Steuerungsdokument sehen dürfen (Button).
Dazu steht in der zweiten Maske die DocID des  Steuerungsdokuments in einem berechneten Feld drin (@DbLookup) und per @GetDocField hole ich die Personennamen in ein weiteres berechnetes Feld des aktuellen Dokumentes (Maske 2).
Zusätzlich zu den Personen A-D dürfen die User mit der Rolle XYZ die Abschnitte + Buttons sehen.

Ich will/wollte dies in einem Feld anzeigen lassen; wegen der Benutzerfreundlichkeit sollte halt nicht "die Rolle XYZ darf das auch" angezeigt werden sondern die betreffenden Personen.

Jetzt habe ich mich doch noch wiederholt, sorry.

Gruß
Katrin
Titel: Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
Beitrag von: BigWim am 23.09.09 - 11:22:21
Hallo Katrin,

Zitat
Es soll ein "freundlicherer" Ersatz sein für die lapidare Info "Nur User mit der Rolle XYZ dürfen das!"
Das macht der Client "automatisch", wenn Du mit Erstellen->Abschnitt->kontrollierter Zugriff arbeitest.

Markus
Titel: Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
Beitrag von: Pidray am 23.09.09 - 11:35:36
Hallo Katrin,

Zitat
Es soll ein "freundlicherer" Ersatz sein für die lapidare Info "Nur User mit der Rolle XYZ dürfen das!"
Das macht der Client "automatisch", wenn Du mit Erstellen->Abschnitt->kontrollierter Zugriff arbeitest.

Markus
automatisch passiert doch nur das sichtbar/nicht sichtbar - ohne Info für wen es sichtbar ist

Ich hätte besser geschrieben: "Auch User mit der Rolle XYZ dürfen das!":
Auch die Personen, welche die betroffenen Buttons nicht sehen dürfen, sollen sehen, wer noch berechtigt ist.
Wenn z.B. Person A+B krank/im Urlaub sind und somit niemand da ist, der den Button unter Punkt 1 drücken darf, gibt es für den Notfall die Rolle XYZ, welche alles darf. Nun soll eben ein Infofeld anzeigen, wer die XYZ-Rolle hat.

Ich glaube, ich konnte mich nicht so recht verständlich machen  :(

Gruß
Katrin
Titel: Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
Beitrag von: Klafu am 23.09.09 - 11:47:34
Mit Hilfe der NotesACL class  solltest du das Problem programmiertechnisch lösen können.

Chris
Titel: Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
Beitrag von: ascabg am 23.09.09 - 11:54:12
Hallo,

@klafu
So weit waren wir schon.
Nur eine kleine Frage.
Wie kommen ich somit an die Namen der berechtigten Personen ran?

Es bleibt doch nur das schon erwaehnt Mittel mit LS und der rekrusiven Funktion


Andreas
Titel: Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
Beitrag von: BigWim am 23.09.09 - 12:14:37
Eine Idee hätte ich noch, wenn in der ACL der Rolle (oder den Rollen) keine Namen zugeordnet sind, sondern Gruppen.

In diesem Fall kannst Du die Gruppen im Adressbuch mit @Dblookup abfragen (oder vielleicht reicht schon ein @NameLookup?).

Markus
Titel: Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
Beitrag von: Klafu am 23.09.09 - 12:18:56
Hallo,

@klafu
So weit waren wir schon.
Nur eine kleine Frage.
Wie kommen ich somit an die Namen der berechtigten Personen ran?

Es bleibt doch nur das schon erwaehnt Mittel mit LS und der rekrusiven Funktion


Andreas

Die ACL Einträge durchgehn, die Rollen prüfen, das Ergebnis in ein Array schreiben und danach je nachdem das Array der entsprechenden Rolle ausgeben  ;D

Chris
Titel: Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
Beitrag von: jBubbleBoy am 23.09.09 - 12:19:27
Und was ist wenn eine Gruppe eine Liste von Gruppen beinhaltet ???

Wenn ihr wollt kann ich euch einen LS - Codeschnipsel zur Rekursiven Gruppenauflösung bereitstellen.
Ich hab das ganze nämlich schon mal gemacht :)  
Titel: Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
Beitrag von: ascabg am 23.09.09 - 12:20:07
@BigWin

Auch nicht schlecht.
Aber.
Gruppe 1 beinhaltet Gruppe 2 und Gruppe 3.
Gruppe 2 beinhaltet Gruppe 4
Gruppe 3 beinhaltet Gruppe 5 und Gruppe 6

@klafu
Dann habe ich aber immer noch nicht die Namen der Gruppenmitglieder


Andreas
Titel: Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
Beitrag von: Klafu am 23.09.09 - 12:22:49
Ja... das mit den Gruppen ist dann noch so ein Problem...
da muss man dann mit den Gruppennamen das Server Adressbuch durchsuchen.
Dann wirds eben schwierig. Das hab ich noch nie gemacht, aber machbar ists ja bestimmt. :)

Chris
Titel: Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
Beitrag von: BigWim am 23.09.09 - 12:34:29
@ascabg
Zitat
Auch nicht schlecht.
Danke (*Stolz*), blinder Hahn findet auch mal ein Korn ...

Zitat
Aber.
Gruppe 1 beinhaltet Gruppe 2 und Gruppe 3.
Gruppe 2 beinhaltet Gruppe 4
Gruppe 3 beinhaltet Gruppe 5 und Gruppe 6
Ich will nicht abstreiten, dass es dann aufwendiger wird, aber unsere Gruppen fangen z. B. alle mit einem $ an. So kann ich unterscheiden: Person oder Gruppe. Und dann muss ich über eine Schleife "weiter" auflösen.

Wobei sich das für mich so anhört, als hätte ich in Karin's Fall Einfluß darauf, ob verschachtelt wird oder nicht. Und man muss es ja nicht unbedingt komplizierter machen, als nötig ;)

Markus


Titel: Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
Beitrag von: Pidray am 23.09.09 - 12:40:43
Und was ist wenn eine Gruppe eine Liste von Gruppen beinhaltet ???
soweit ich weiss, gibt es das in unserem Haus nicht, allerdings soll "meine" Datenbank auch in einem anderen Haus Verwendung finden und was die für Gruppen haben, weiss ich nicht.

Wenn ihr wollt kann ich euch einen LS - Codeschnipsel zur Rekursiven Gruppenauflösung bereitstellen.
Ich hab das ganze nämlich schon mal gemacht :)  
:) oh, das wäre super ! Ich wollte das Ganze schon fallen lassen ...
Aber wenn Du es uns zur Verfügung stellst, muss ich weder aufgeben noch das Rad neu erfinden !

Gruß+Dank
Katrin

Titel: Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
Beitrag von: samWare am 23.09.09 - 13:17:18
Ich verstehe nicht ganz wo das Problem mit den Gruppen liegen soll?! Das kann man doch alles wunderbar auflösen (anhand des Adressbuches). Mit der richtigen Logik ist auch die Sache mit den verschachtelten Gruppen kein Problem...

@Pidray: keine Angst das was du willst ist durchaus machbar ;) Schau dir einfach wie vorhin schon beschrieben die NotesACL Klasse an, und schau dich im Adressbuch um damit du siehst wo was abgelegt ist. Vllt. wäre das ganz nütlich für dich ohne Fremdcode die Sache erstmal selber zu Probieren :-:

mfg Samuel
Titel: Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
Beitrag von: jBubbleBoy am 23.09.09 - 13:22:09
Die Variablen sind Global zu definieren:

Code
'-- Globale Variablen
dim lauf as integer
dim groupview as notesview
dim memberarray() as string, grouparray() as string

'-- Aufruf dann z.B.
mitglieder$ = getAllGroupMembers(server$, filepath$, gruppe$)
 
Function getAllGroupMembers(server As String, filepath As String, group As String) As String
	Dim se As New NotesSession
	Dim namesdb As New notesdatabase( server,filepath)
	Dim member$
	
	Set groupview = namesdb.Getview("Groups")	
	Redim memberarray(0)
	Redim grouparray(0)
	lauf = 0
	member = ""
	Forall i In checkGroups(group,0)
		If i <> "" Then member = member + ";" + i
	End Forall
	If Len(member)>0 Then member = Right(member,Len(member)-1)	
	getAllGroupMembers = member
End Function
 
Function CheckGroups(groups As String, i As Integer) As Variant
	Dim doc1 As NotesDocument
	Dim flag%,membertest
	Dim memberdoc As NotesDocument
	
	Set memberdoc = groupview.GetDocumentbyKey(groups,True)
	If Not (memberdoc Is Nothing) Then
		Forall member In memberdoc.members
			Redim Preserve memberarray(i)
			member = CheckName(member)
			Set doc1 = groupview.GetDocumentbyKey(member,True)
			If Not (doc1 Is Nothing) Then
				Redim Preserve grouparray(lauf)
				grouparray(lauf) = member
				lauf = lauf +1
				membertest = CheckGroups(member,i)
			Else
				flag = 0
				Forall v In memberarray
					If v = member Then flag = 1
				End Forall
				If flag = 0 Then memberarray(i) = member
			End If		
			i = i+1
		End Forall
	End If
	checkgroups = memberarray	
End Function
 
Function CheckName (member As String) As String
	Dim username As NotesName
	If Left(member,2) = "CN" Then
		Set username = New NotesName(member)
		member = username.Common
	End If
	checkname = member
End Function
Titel: Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
Beitrag von: ascabg am 23.09.09 - 13:28:30
@samWare

Zitat
Ich verstehe nicht ganz wo das Problem mit den Gruppen liegen soll?! Das kann man doch alles wunderbar auflösen (anhand des Adressbuches). Mit der richtigen Logik ist auch die Sache mit den verschachtelten Gruppen kein Problem...

Klingt interessant. Und wie?


Andreas
Titel: Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
Beitrag von: Klafu am 23.09.09 - 13:34:09
Da müsst man doch eine einfache Abfrage machen.
Den Gruppennamen hast du ja über die ACL und die Abfrage ans Adressbuch sollte ja mit @DbLookup oder so gehn

Chris
Titel: Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
Beitrag von: BigWim am 23.09.09 - 14:18:33
@Samware

Zitat
Ich verstehe nicht ganz wo das Problem mit den Gruppen liegen soll?!
Ursprünglich hatte sie ja auch kein Problem mit Gruppen. Das waren ja wir >:D

Katrin hat eine Rolle und wollte wissen, welche Personen dahinstehen und das ist nicht ganz so einfach aufzulösen. Gruppen aufzulösen ist da schon einfacher ...


@Katrin
Zitat
allerdings soll "meine" Datenbank auch in einem anderen Haus Verwendung finden und was die für Gruppen haben, weiss ich nicht.
Das wäre dann noch eine Einstellung für den Steuerungsdokument, wobei Du dann noch dem "Gruppe in Gruppe"-Problem vorbeugen mußt. Mit unserem Namenskonzept kann ich die Laufzeit der Formel-Schleife "etwas abkürzen", aber notwendig ist das nicht ...

Oder mit der Auslieferung der Datenbank werden die Bedingungen festgelegt und das andere kommt dann in Version 3.0.2 ;)

Markus

Titel: Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
Beitrag von: Pidray am 23.09.09 - 16:08:58
 Vielen Dank !

Code
...Function CheckName (member As String) As String
	Dim username As NotesName
	If Left(member,2) = "CN" Then
		Set username = New NotesName(member)
		member = username.Common
	End If
	checkname = member
End Function


da auch bei uns die Gruppen mit "$" beginnen, habe ich in Deinem Code nach dem DIM folgendes eingebastelt:
Code
If Left(member,4) = "CN=$" Then                                  ' = Gruppe
		Set username = New NotesName(member)
		member = username.Abbreviated
elseif ...

sonst lief ich auf einen "Out Of Stack"-Fehler, weil bei uns pro Haus 1-3 eine Gruppe $Mitarbeiter/Haus1/ORG existiert, welche durch .Common auf "$Mitarbeiter" gekürzt wurden, was in einer Endlosschleife ausuferte (mind. 100 Durchläufe bei eigentlich 12 Namen) ...

Nochmals Danke an alle und besonders an jBubbleBoy
:-*

Gruß
Katrin


Nachtrag: 28.09.2009: ach ja, ein ArrayUnique(FullTrim()) habe ich auch noch darumgelegt ...
Nun ist alles "viel gut"  ;D

Ich danke Euch !
Titel: Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
Beitrag von: LN4ever am 06.10.09 - 11:26:50
Liebe Katrin,

wenn die Gruppen, die du rekursiv auflösen möchtest, keine reinen ACL-Gruppen sind (das ist wichtig - es wird nur aufgelöst, was in der Ansicht ($VIMUSERS) angezeigt wird !!), funktioniert ein @ExpandNameList am schnellsten und sichersten, auch in einem Evaluate innerhalb des LS-Codes. Das fängt auch Fehler wie sich gegenseitig beinhaltende Gruppen ab und ist - verglichen mit allem "selbstgetrickten" deutlich preformanter.

Ja, ich weiß, das ist ein undokumentierter Befehl, aber da das von IBM selbst so oft benutzt wurde, bleibt uns das bestimmt noch lange erhalten.

Gruß

Norbert

P.S.: Bau solche Funktionen in Buttons oder Hotspots, die die Auswertung nur auf ausdrücklichen Userwunsch vornehmen und nicht automatisch bei jedem Öffnen des Dokuments, denn rekursive Gruppenauflösungen kosten Zeit und belasten deinen Server spürbar.

Verberge diese Buttons für lokale Repliken, denn da steht dir das Adreßbuch oft nicht zur Verfügung.
Titel: Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
Beitrag von: jBubbleBoy am 06.10.09 - 13:13:17
Was macht Ihr wenn diese Funktion in einer neueren Notes-Version weggefallen ist?
Das sollte man nicht außer Acht lassen.
Titel: Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
Beitrag von: LN4ever am 07.10.09 - 13:13:31
Dann suche ich nach etwas Neuem.

Aber wenn ich in selbst geschriebenen oder erweiterten Funktionen solche Konstrukte wie
If Left(member,4) = "CN=$" Then                                  ' = Gruppe
      Set username = New NotesName(member)
      member = username.Abbreviated

sehe, dann stehen mir die Haare zu Berge.

Wenn jemand Gruppennamen mit einem Slash vergibt, dann ist er ohnehin irgendwo mit der Muffe gepufft, denn deren Umbenennungen laufen NIE sauber durch einen AdminP-Prozeß. Wenn er dann aber das noch in seinem Code zur rekursiven Gruppenauflösung verwendet, dann sucht sich jeder später einen Wolf, wenn da etwas quietscht und kracht.

@ExpandNameList begleitet uns seit Version 4 bis in Version 8.

Und glaub nicht, daß deine selbstgebastelten Funktionen ohne versionsabhängige Prämissen auskommen. Wenn es in der Version 13 die Ansicht "(Groups)" nicht mehr gibt, legt sich deine selbstgeschriebene Funktion genauso aufs Maul wie die Verwendung einer undokumentierten Funktion.

Ich weiß, daß ich mich jetzt sehr weit aus dem Fenster lehne, aber ich behaupte einmal, daß eines Tages, wenn Lotus sein Directory auf eine nicht mehr ansichtsorientierte, sondern nur LDAP- bezogene Verwendung umstellt, der Befehl @ExpandNameList immer noch funktioniert (weil er von den IBM-lern selbst korrigiert wird, weil er in zig von ihnen verbreiteten Templates genutzt wird), während alle, die eigene Funktionen geschrieben haben, sich etwas neues ausdenken müssen.

Man muß die Kirche auch einmal im Dorf lassen und den undokumentierten Funktionen den Nimbus des "igittigitt" nehmen.

In Version 5 hatte ich einmal eine selbstgeschriebene Funktion zur Gruppenauflösung geschrieben, weil auch ich ein Jünger der reinen Leere geworden war. Und in der gab es eine Unterroutine mit dem schönen Namen IMPLODE. Mit Version 6 ist IMPLODE zu einem reservierten Wort geworden. Muß ich weiterreden ?

Gruß

Norbert
Titel: Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
Beitrag von: Pidray am 07.10.09 - 14:25:20
P.S.: Bau solche Funktionen in Buttons oder Hotspots, die die Auswertung nur auf ausdrücklichen Userwunsch vornehmen ...

Ja, das wurde weiter oben schon vorgeschlagen und von mir umgesetzt. Damit minimiere ich auch die erneute Ungelesen-Markiererei ...

Danke !
Katrin
Titel: Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
Beitrag von: Pidray am 07.10.09 - 14:32:01
@ExpandNameList begleitet uns seit Version 4 bis in Version 8.
...
Verwendung einer undokumentierten Funktion

Na toll, "undokumentiert" ! Und woher soll ein normal Sterblicher das wissen - ganz zu schweigen von der mir unbekannten Syntax ?
Zum Glück gibts das Forum ...
Bei Gelegenheit werde ich die Funktion mal ausprobieren ...

Katrin
Titel: Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
Beitrag von: LN4ever am 07.10.09 - 21:37:11
Liebe Katrin,

hier wierden Sie geholfen:

http://www.dominoguru.com/pages/01202009030630.html

Aber merke: intern setzt @ExpandNamelist auf einer der $VIM-Ansichten auf und kann daher keine reinen ACL-Gruppen auflösen. Und darauf hast du keinerlei Einflußmöglichkeit.

Aber aus deinem Code-Schnipsel, den ich moniert habe ergibt sich eine wirklich dringend nptwendige Aktion bei euch: Räumt die Gruppennamen auf, die einen Slash enthalten. Je früher, desto besser. Und: holt euch qualifizierte Hilfe dafür ins Haus.

Mit einem lieben Gruß

Norbert
Titel: Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
Beitrag von: koehlerbv am 07.10.09 - 23:03:11
Lieber Norbert,

es gibt Postings, bei denen man (mit hinreichendem Verständnis) sagt: Wow, das war mal wieder richtig gut. Deine letzten beiden Posts in diesem Thread waren wieder mal solche, und dazu kommen in anderen Threads ja etliche weitere.

Danke für Deine Zeit, die Du Dir hier für AtNotes nimmst.

Bernhard
Titel: Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
Beitrag von: Pidray am 08.10.09 - 14:48:24
Danke für Eure Mühe+Zeit.

Räumt die Gruppennamen auf, die einen Slash enthalten.
warum ist das nötig ? Bringt das Probleme ? Wenn ja, welche ?
 
Entstanden sind diese Gruppen auch erst nach Zusammenlegung von den vorher getrennt/eigenständig existierenden Standorten. Da in den Häusern z.T gleiche Gruppennamen existierten, wurde "/Haus1/ORG" angehängt ...

z.B.
Gruppe $Mitarbeiter/Haus1/ORG
Person Vorname Nachname/Haus1/ORG

Haus1-9 sind verschiedene Städte mit eigenem Notes-Server Haus1/ORG


Katrin
Titel: Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
Beitrag von: koehlerbv am 08.10.09 - 17:39:36
Wenn ein Gruppen-Dokument mit dem Gruppennamen "AS/400" speicherst, so wird dabei daraus "CN=AS/O=400" (schau Dir das in den Dokumenteigenschaften an). Alles klar, was das für Auswirkungen hat, Katrin?

Bernhard
Titel: Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
Beitrag von: Pidray am 09.10.09 - 10:25:55
Alles klar, was das für Auswirkungen hat, Katrin?

hmm, irgendwie weiss ich nicht, worauf du hinaus willst *brettvormkopfverschieb*
O heisst doch Organisation, oder ?
und OU entspricht meinem Haus1-9 (=Standorte, Unterorganisation)

ich kann Eure Antwort nur weiterleiten, da ich mit System-Administration nix zu tun hab. Ich muss mich "nur" hin und wieder mit Entwicklung beschäftigen. Mein Noteskurs beinhaltete damals leider kein Scripting, nur etwas Formelsprache für Normalanwendungen. Somit präsentiere ich Euch immer wieder was zum Haaresträuben und Verbessern, weil ich es nicht von der Pike auf gelernt sondern mir aus der Hilfe zurechtgebogen habe.

Gruß
Katrin   
*winzigkleinmithutfühl*  :'(
Titel: Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
Beitrag von: DerAndre am 09.10.09 - 10:54:19
Moin.

Ich habe mal gerade eine Frage.
Norbert und Bernhard schreiben was von einer Gruppe AS/400. Wo ist die hin?
Wenn das in die Gruppe $Mitarbeiter geändert wurde, ist das eine blöde Idee gewesen, denn das macht die entsprechenden Postings etwas Sinnentfremdet...
Titel: Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
Beitrag von: koehlerbv am 09.10.09 - 11:03:44
Nur ich habe davon geschrieben. Andre. Und ich habe das nur als (selbsterlebtes) Beispiel angeführt.

Bernhard
Titel: Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
Beitrag von: Pidray am 09.10.09 - 11:08:27

@ André:

Gruppe $Mitarbeiter/Haus1/ORG
Person Vorname Nachname/Haus1/ORG

Haus1-9 sind verschiedene Städte mit eigenem Notes-Server Haus1/ORG

Titel: Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
Beitrag von: DerAndre am 09.10.09 - 12:14:16
Ah, Ok.

Danke.
Titel: Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
Beitrag von: LN4ever am 10.10.09 - 10:15:02
Liebe Katrin,

dein Posting 31, in dem du erläuterst, wie und warum die Gruppennamen mit Slashes entstanden sind, bestätigt meine eherne These:

Nichts ist teurer als billiges Personal

Bei einem Domänen-Merge zeigten sich gleichlautende Gruppennamen. Wenn das niemand vor dem Merge geprüft hat, ist hier die erste rote Karte fällig. Ich will dir auch gleich sagen, warum:

In Haus1 gibt es eine Datenbank, in der die Gruppe $Mitarbeiter in Tausenden von Dokumenten Autoren- oder Leserrechte eingetragen hat.
In Haus2 gibt es die gleiche Situation.

VOR dem Domänen-Merge hast du domänenweise getrennte AdminP-Prozesse, die mit einem Gruppen-Rename der Gruppe $Mitarbeiter -> $Mitarbeiter-Haus1-ORG bzw. in der anderen Domäne $Mitarbeiter ->  $Mitarbeiter-Haus2-ORG umgehen können und genau das tun, was du erhoffst oder erwartest.

NACH dem Domänen-Merge kannst du zwar auch eine Umbenennung vornehmen, aber das Ergebnis wird ein völlig anderes sein: in allen Datenbanken, die der eine AdminP-Prozeß jetzt verwaltet, wird er die erste angeforderte Umbenennung auf ALLE Datenbanken anwenden. Alles klar ?

Und jetzt kommt die zweite rote Karte (und das ist zu 50% auch eine rote Karte an IBM, die in der PublicNAB-Schablone bis heute keine Validierungsprüfung in gruppenbezogenen Prozessen auf Slashes vornehmen). In Gruppennamen müssen kanonischer und Common-Name identisch sein. Ansonsten kannst du diese Gruppe nie wieder mit AdminP-Unterstützung umbenennen. Und von den Seiteneffekten kannst du ja mit deinem "out of stack"-Problem gleich ein Lied singen.

Deshalb: bringt das in Ordnung. Ja, das kostet viel Zeit und Geld. Ja, das ist jetzt aufwändig. Aber ich kann dir versprechen: die Erweiterung der Liegezeit von Leichen im Keller sorgt im Normalfall nicht dafür, daß sich die odorische Gesamtsituation im Haus verbessert.

Und: eure Admins haben sich bei eurem Domänen-Merge nicht mit Ruhm bekleckert. Die Fehlerbehebung kostet viel tieferes Lotus-Notes-KnowHow als das, was sie heute schon vermissen lassen. Deshalb: holt euch dafür professionelle Hilfe.

Gruß

Norbert

P.S.: um zum ursprünglichen Thema doch noch einmal zurückzukehren und den Unterschied zwischen dokumentierten und undokumentierten Funktionen klarzustellen: ExpandNameList ist ein gutes Beispiel dafür. Du kannst die Funktion verwenden, du darfst hoffen, aber nicht erwarten, daß sie in der nächsten Version noch funktionieren wird. Aber das Wichtigste: IBM kann sie in der nächsten Version möglicherweise mit einer etwas geänderten Funktionalität einbauen, z.B. wäre es möglich, daß diese Funktion in der nächsten Version nicht mehr auf der ($VIM...) Ansicht aufsetzt, sondern auf der Ansich ($Groups) und damit auch alle ACL-Gruppen sauber auflöst.
Titel: Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
Beitrag von: Pidray am 12.10.09 - 13:50:54
Hallo Norbert,

Danke für Deine Mühe der Aufklärung !
Ich werde es an unseren Systemadmin weitergeben.

Gruß
Katrin