确定已定义用户的所有组

时间:2012-04-04 12:06:30

标签: xpages lotus usergroups

我目前正在创建一个java方法(XPages托管bean的一部分)来检索列表组用户(不一定是当前用户)是其成员。

是否有任何简单的方法可以获取此信息,或者我是否必须遍历所有组以检查用户,并检查这些组是否是其他组的子组?

6 个答案:

答案 0 :(得分:12)

在这里的博文中回答了这个问题:http://ntf.gbs.com/nathan/escape.nsf/d6plinks/NTFN-8TMHRP

简单的版本就是你要找的......

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

这应该是你所需要的一切。

答案 1 :(得分:3)

使用此片段:

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

答案 2 :(得分:0)

您可以从names.nsf中的($ServerAccess)视图中检索此信息,该视图按用户名分类。

答案 3 :(得分:0)

session.evaluate(“@ UserNamesList”);

答案 4 :(得分:0)

不确定你是否可以(重新)在这里使用LotusScript,但这个article (IBM DeveloperWorks, look at the 4th paragraph)是一个很好的开始。它提到了NotesGroupManager和NotesGroup类。这些类可以用作重写XPage代码的基础。似乎没有其他“简单”的方法来查找用户所属的所有组。问题的直接答案似乎是否定的。

答案 5 :(得分:0)

您可能更愿意在组成员组织的每个导演中创建一个特殊视图,而不是遍历服务器上所有目录中的所有组。这使得匹配的发现速度要快得多。

Jasper提到的GroupManager工具也是LotusScript代码的一个很好的例子,可以完成你想要的大部分工作。 Java中的对象是相同的,语法只是更麻烦。

/ Newbs