2012-04-04 18 views
5

Ich erstelle derzeit eine Java-Methode (Teil von und verwaltete Java-Bean), um Listengruppen abzurufen, zu denen ein Benutzer (nicht notwendigerweise der aktuelle Benutzer) gehört.Ermitteln aller Gruppen für einen definierten Benutzer

Gibt es eine einfache Methode, um diese Informationen zu erhalten, oder werde ich alle Gruppen durchlaufen müssen, um nach dem Benutzer zu suchen, und auch prüfen, ob diese Gruppen Untergruppen anderer Gruppen sind?

Antwort

12

dies hier in einem Blog-Eintrag Beantwortet: http://ntf.gbs.com/nathan/escape.nsf/d6plinks/NTFN-8TMHRP

einfache Version ist, dass für das, was Sie suchen ist ...

lotus.notes.addins.DominoServer server = new lotus.notes.addins.DominoServer("YourCanonicalServerName"); 
Collection nameList = server.getNamesList("TheUserNameYou'reLookingFor"); 

, dass alles, was Sie benötigen sollten .

+0

Erwähnte auf dem Blog, aber nur für den Fall, dass niemand das überprüft. "lotus.notes.addins. *" ist eine undokumentierte API, daher gibt es keine Garantie, dass es in späteren Versionen funktioniert (oder sogar verfügbar ist). Also bitte benutzen Sie das eigene Risiko. –

+0

nur von diesem ausgezeichneten dank !!!!!! – JMCooper

0

Sie können diese Informationen aus der ($ServerAccess) Ansicht in names.nsf abrufen, die nach Benutzername kategorisiert ist.

+0

$ Server nicht zeigen, wenn ein Benutzer Mitglied einer Gruppe ist, die Mitglied einer Gruppe ist. Je nach Anforderungen kann das schwierig werden. Also beginnend mit $ ServerAccess und von dort aus arbeiten. Vorbehaltsgruppen mit Zirkelbezügen – stwissel

0

session.evaluate ("@UserNamesList");

+0

Dies funktioniert nur für den aktuellen Benutzer. so wird meine Anforderungen nicht erfüllen, wenn mein Verständnis nicht inkorrekt ist. – JMCooper

+0

Das ist richtig .. Ich habe die Klammer nicht gelesen .. –

0

Nicht sicher, ob Sie das LotusScript hier (wieder) verwenden können, aber das article (IBM DeveloperWorks, look at the 4th paragraph) ist ein guter Start. Es erwähnt die Klassen NotesGroupManager und NotesGroup. Diese Klassen könnten als Basis für das Umschreiben des Codes für XPages verwendet werden. Es scheint keine andere "einfache" Möglichkeit zu geben, alle Gruppen zu finden, zu denen ein Benutzer gehört. Die direkte Antwort auf die Frage scheint NEIN zu sein.

0

Anstatt alle Gruppen in allen Verzeichnissen auf dem Server durchzulaufen, möchten Sie möglicherweise in jedem von Gruppenmitgliedern organisierten Director eine spezielle Ansicht erstellen. Das macht das Finden von Matches sehr viel schneller.

Die von Jasper erwähnten GroupManager-Tools sind ebenfalls ein gutes Beispiel für LotusScript-Code, mit dem Sie das meiste erreichen können. Die Objekte in Java sind die gleichen, die Syntax ist einfach viel nerviger.

/Newbs

3

Verwendung dieser Schnipsel:

XSPContext context = XSPContext.getXSPContext(FacesContext.getCurrentInstance()); 
DirectoryUser currentUser = context.getUser(); 
Vector<String> groups = new Vector(currentUser.getGroups()); 
Verwandte Themen