Autor Thema: wie kann ich alle User einer bestimmtem Rolle ermitteln ?  (Gelesen 15703 mal)

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
« Antwort #20 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

Offline Klafu

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.944
  • Geschlecht: Männlich
  • Remember the Cookies!
Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
« Antwort #21 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
„Der einzige Mensch, der sich vernünftig benimmt, ist mein Schneider. Er nimmt jedesmal neu Maß, wenn er mich trifft, während alle anderen immer die alten Maßstäbe anlegen in der Meinung, sie paßten auch heute noch...“

BigWim

  • Gast
Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
« Antwort #22 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


Offline Pidray

  • Junior Mitglied
  • **
  • Beiträge: 58
  • 640K ought to be enough for anybody. (Bill Gates)
Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
« Antwort #23 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 !
« Letzte Änderung: 28.09.09 - 08:47:03 von Pidray »
Lotus Notes 6.0.1

Offline LN4ever

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 505
  • Geschlecht: Männlich
Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
« Antwort #24 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.
Situs vilate in isse tabernit.

Offline jBubbleBoy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.290
  • Geschlecht: Männlich
Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
« Antwort #25 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.
Gruss Erik :: Freelancer :: KI-Dev, Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.16 / OLI 2.0

--
Nur ein toter Bug, ist ein guter Bug!

Offline LN4ever

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 505
  • Geschlecht: Männlich
Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
« Antwort #26 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
Situs vilate in isse tabernit.

Offline Pidray

  • Junior Mitglied
  • **
  • Beiträge: 58
  • 640K ought to be enough for anybody. (Bill Gates)
Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
« Antwort #27 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
« Letzte Änderung: 07.10.09 - 14:32:51 von Pidray »
Lotus Notes 6.0.1

Offline Pidray

  • Junior Mitglied
  • **
  • Beiträge: 58
  • 640K ought to be enough for anybody. (Bill Gates)
Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
« Antwort #28 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
Lotus Notes 6.0.1

Offline LN4ever

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 505
  • Geschlecht: Männlich
Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
« Antwort #29 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
Situs vilate in isse tabernit.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
« Antwort #30 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

Offline Pidray

  • Junior Mitglied
  • **
  • Beiträge: 58
  • 640K ought to be enough for anybody. (Bill Gates)
Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
« Antwort #31 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
« Letzte Änderung: 08.10.09 - 14:58:57 von Pidray »
Lotus Notes 6.0.1

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
« Antwort #32 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

Offline Pidray

  • Junior Mitglied
  • **
  • Beiträge: 58
  • 640K ought to be enough for anybody. (Bill Gates)
Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
« Antwort #33 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*  :'(
Lotus Notes 6.0.1

Offline DerAndre

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.655
  • Geschlecht: Männlich
  • Keep cool!
Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
« Antwort #34 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...
André

Elterninitiative diabetischer Kinder und Jugendlicher e.V.
-----------------------------------------------------------------------------
Fliegen ist die Kunst auf den Boden zu Fallen, aber daneben.
-----------------------------------------------------------------------------
Etwas mehr Hardware dazu zu kaufen ist viel billiger als
Software besser zu machen. ( Niklaus Wirth )

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
« Antwort #35 am: 09.10.09 - 11:03:44 »
Nur ich habe davon geschrieben. Andre. Und ich habe das nur als (selbsterlebtes) Beispiel angeführt.

Bernhard

Offline Pidray

  • Junior Mitglied
  • **
  • Beiträge: 58
  • 640K ought to be enough for anybody. (Bill Gates)
Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
« Antwort #36 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

Lotus Notes 6.0.1

Offline DerAndre

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.655
  • Geschlecht: Männlich
  • Keep cool!
Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
« Antwort #37 am: 09.10.09 - 12:14:16 »
Ah, Ok.

Danke.
André

Elterninitiative diabetischer Kinder und Jugendlicher e.V.
-----------------------------------------------------------------------------
Fliegen ist die Kunst auf den Boden zu Fallen, aber daneben.
-----------------------------------------------------------------------------
Etwas mehr Hardware dazu zu kaufen ist viel billiger als
Software besser zu machen. ( Niklaus Wirth )

Offline LN4ever

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 505
  • Geschlecht: Männlich
Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
« Antwort #38 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.
Situs vilate in isse tabernit.

Offline Pidray

  • Junior Mitglied
  • **
  • Beiträge: 58
  • 640K ought to be enough for anybody. (Bill Gates)
Re: wie kann ich alle User einer bestimmtem Rolle ermitteln ?
« Antwort #39 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
Lotus Notes 6.0.1

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz