2012-04-04 7 views
5

Attualmente sto creando un metodo java (parte del bean gestito XPages) per recuperare un gruppo di elenchi a cui un utente (non necessariamente l'utente corrente) è membro.Determina tutti i gruppi per un utente definito

Esiste un metodo semplice per recuperare queste informazioni o devo passare in rassegna tutti i gruppi per controllare l'utente e anche controllare se tali gruppi sono sottogruppi di altri gruppi?

risposta

12

risposto a questa in un post sul blog qui: http://ntf.gbs.com/nathan/escape.nsf/d6plinks/NTFN-8TMHRP

versione semplice è che quello che stai cercando è ...

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

Questo dovrebbe essere tutto ciò che serve .

+0

Menzionato sul blog, ma nel caso nessuno lo controlli. "lotus.notes.addins. *" è un'API non documentata quindi non è garantito che funzioni nelle versioni successive (o che sia disponibile anche). Quindi, si prega di utilizzare a proprio rischio. –

+0

appena fatto uso di questo eccellente ringraziamento !!!!!! – JMCooper

0

È possibile recuperare queste informazioni dalla vista ($ServerAccess) in names.nsf, che è classificata in base al nome utente.

+0

$ ServerAccess non mostra se un utente è membro di un gruppo che è membro di un gruppo. Quindi, a seconda delle esigenze che possono diventare complicate. Quindi inizia con $ ServerAccess e lavora da lì. Gruppi di avvertimento con riferimenti circolari – stwissel

0

session.evaluate ("@UserNamesList");

+0

Che funzionerà solo per l'utente corrente; quindi non soddisferà le mie esigenze a meno che la mia comprensione non sia corretta. – JMCooper

+0

Che è corretto .. Non ho letto la parentesi .. –

0

Non è sicuro se è possibile (ri) utilizzare LotusScript qui, ma questo article (IBM DeveloperWorks, look at the 4th paragraph) è un ottimo inizio. Indica le classi NotesGroupManager e NotesGroup. Queste classi potrebbero essere utilizzate come base per riscrivere il codice per XPages. Sembra che non ci sia nessun altro modo "facile" per trovare tutti i gruppi a cui un utente appartiene. La risposta diretta alla domanda sembra essere NO.

0

Invece di eseguire il ciclo di tutti i gruppi in tutte le directory sul server, è preferibile creare una vista speciale in ciascun direttore organizzata dai membri del gruppo. Ciò rende la scoperta delle partite molto più veloce.

Gli strumenti GroupManager menzionati da Jasper sono anche un buon esempio di codice LotusScript che realizza la maggior parte di ciò che si desidera. Gli oggetti in Java sono gli stessi, la sintassi è molto più fastidiosa.

/newbs

3

utilizzare questo snippet:

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