Lotus notes 检查用户是否有权访问Domino服务器

Lotus notes 检查用户是否有权访问Domino服务器,lotus-notes,lotus-domino,lotusscript,Lotus Notes,Lotus Domino,Lotusscript,我需要检查在names.nsf中注册的每个用户是否有权访问Domino服务器 有没有一种简单的编程方法来解决这个问题(我的意思是可能需要2-4行复杂的代码) 否则,我想我需要在服务器文档[Security\server Access]中解析(如果已定义)“访问服务器”和“不访问服务器”)。是:“访问服务器”和“不访问服务器”“是要查看的地方。只需查看值。如果其中有组,则您可以使用管理客户端及其“管理组”功能检查用户的组成员资格,您可以在其中列出特定人员所属的所有组 就像这样,这是一个问题,只是一

我需要检查在names.nsf中注册的每个用户是否有权访问Domino服务器

有没有一种简单的编程方法来解决这个问题(我的意思是可能需要2-4行复杂的代码)


否则,我想我需要在服务器文档[Security\server Access]中解析(如果已定义)“访问服务器”和“不访问服务器”)。

是:“访问服务器”和“不访问服务器”“是要查看的地方。只需查看值。如果其中有组,则您可以使用管理客户端及其“管理组”功能检查用户的组成员资格,您可以在其中列出特定人员所属的所有组

就像这样,这是一个问题,只是一些点击,以检查是否有人有权访问服务器或没有


“不访问服务器”覆盖了此处的“访问服务器”。

已经有一段时间了,但是如果@Torsten的回答没有帮助,请查看@UserNamesList函数

例如,如果您正在进行分析,而不是在应用程序中进行分析,则可以在服务器上的某个位置创建域通讯簿的副本(它必须在服务器上,否则@UserNamesList将不起作用,并且您希望在副本中这样做,这样您就不会弄脏您的域通讯簿,因为如果您弄糟了,您会遇到麻烦),然后创建一个公式代理,在所选文档上运行,代码如下:

GrantAccessGroups := "List of groups" : "that are allowed access";
DenyAccessGroups := "Deny Access" : "some other group" : "any other group" : "that is listed in the server's Server document's Deny Access field";
SELECT @IsMember(Form; "User" : "Person");
FIELD AccessCheckResult := @If(
  !@IsNotMember(@UserNamesList(FullName[1]); DenyAccessGroups); "Denied";
  !@IsNotMember(@UserNamesList(FullName[1]); GrantAccessGroups); "Confirmed";
  "Neither confirmed nor denied"
);
FIELD AccessCheckDate := @Now;
"Lotus Notes used to not like ending agent formulas with a FIELD statement, so this is just a string that does nothing just in case this quirk is still there :-P"
  • 我不确定表单应该是“User”还是“Person”。不过,只要我对其中一个是正确的,
    @IsMember(form;“User”:“Person”)
    就可以了

  • @UserNamesList返回给定用户的所有角色和组的名称

  • @仅当两个列表之间没有重叠时,IsNotMember才为true。(如果第二个参数中只有部分值位于第一个参数中,@IsNotMember和@IsMember都返回false,因此必须使用!@IsNotMember。)

  • 设置AccessCheckDate只是为了您自己的理智,以防出现问题,您必须进行故障排除

运行该命令后,可以将视图更改为按AccessCheckResult分类