确定已定义用户的所有组



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

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

在这里的博客文章中回答了这个问题: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");

这应该就是你所需要的。

使用以下代码段:

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

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

session.eevaluate("@UserNamesList");

与其循环浏览服务器上所有目录中的所有组,您可能更喜欢在每个由组成员组织的控制器中创建一个特殊视图。这使得查找匹配项的速度要快得多。

Jasper提到的GroupManager工具也是LotusScript代码的一个很好的例子,它可以实现您想要的大部分功能。Java中的对象是相同的,语法只是更令人讨厌。

/Newbs

不确定您是否可以在这里(重新)使用LotusScript,但本文(IBMDeveloperWorks,参见第4段)是一个很好的开始。它提到NotesGroupManager和NotesGroup类。这些类可以作为重写XPages代码的基础。似乎没有其他"简单"的方法可以找到用户所属的所有组。这个问题的直接答案似乎是否定的。

相关内容

  • 没有找到相关文章

最新更新