我需要检查在names.nsf中注册的每个用户是否确实有权访问Domino服务器。
有没有一种简单和编程的方法来找出这一点(我的意思是可能需要2-4行棘手的代码)?
否则,我想我需要在server document Security\Server Access 'Access servers‘和'Not access server’中解析(如果已定义)。
发布于 2020-10-03 04:28:58
是:“access server”和“not access server”是要查找的地方。看看这些值就知道了。如果其中有组,那么您可以使用admin- client及其“Manage groups”功能检查用户的组成员身份,在该功能中,您可以列出某个特定人员所属的所有组。
像这样,只需点击几下鼠标,就可以检查某人是否有权访问服务器。
“非访问服务器”将覆盖此处的“访问服务器”。
发布于 2020-10-03 06:08:17
已经有一段时间了,但是如果@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"@IsMember(Form; "User" : "Person")就应该可以工作!仅当两个列表之间没有重叠时,
运行该命令后,您可以将视图更改为按AccessCheckResult分类
https://stackoverflow.com/questions/64177205
复制相似问题