- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试找到一种方法来获取 Lotus Notes 文档的完整用户列表。我无法获取用户并在 openCMIS 中显示他们的权限。
有谁知道如何获取特定文档的每个用户的完整 ACL?
public class AclServiceUtils {
private static final Logger LOGGER = LoggerFactory.getLogger(AclServiceUtils.class);
public static Acl getAcl(Session session, String objectId, Boolean onlyBasicPermissions) throws IOException {
ObjectIdentity objId = ObjectIdentity.getObjectIdentity(objectId);
try {
AccessControlListImpl acl = new AccessControlListImpl();
List<Ace> aces = new ArrayList<Ace>();
PrincipalImpl principal=new PrincipalImpl();
principal.setId(objId.getType() + " ");
// here we want info of user
AccessControlEntryImpl ace = new AccessControlEntryImpl();
ace.setDirect(true);
ace.setPrincipal(principal);
aces.add(ace);
acl.setAces(aces);
return acl;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
public class ObjectIdentity {
@JsonIgnore
private static final ObjectMapper mapper = new ObjectMapper();
@JsonIgnore
private static final String UTF_8 = "UTF-8";
private ObjectIdentityType type;
private String unid;
private String id;
private String parentFolderPath;
public ObjectIdentityType getType() {
return type;
}
public void setType(ObjectIdentityType type) {
this.type = type;
}
public String getUnid() {
return unid;
}
public void setUnid(String unid) {
this.unid = unid;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getParentFolderPath() {
return parentFolderPath;
}
public void setParentFolderPath(String parentId) {
this.parentFolderPath = parentId;
}
@JsonIgnore
public String getEncodedObjectId() throws IOException {
String json = mapper.writeValueAsString(this);
byte[] encodeBase64 = Base64.encode(json);
String result = new String(encodeBase64);
result = URLEncoder.encode(result, UTF_8);
return result;
}
@JsonIgnore
public static ObjectIdentity getObjectIdentity(String encodedString)
throws IOException {
String decodedString = URLDecoder.decode(encodedString, UTF_8);
byte[] decodeBase64 = Base64.decode(decodedString);
String result = new String(decodeBase64);
return mapper.readValue(result, ObjectIdentity.class);
}
public static void main(String args[]) throws IOException{
ObjectIdentity identity = new ObjectIdentity();
identity.setId("<1__=EABBF5CEDFB501988f9e8a93df93869091@local>");
identity.setUnid("DEF");
identity.setType(ObjectIdentityType.ATTACHMENT);
ObjectIdentity decoded = ObjectIdentity.getObjectIdentity(identity.getEncodedObjectId());
/*System.out.println(decoded.id);
System.out.println(decoded.unid);
System.out.println(decoded.type);*/
System.out.println(decoded.id.equals(identity.id));
}
}
最佳答案
由于没有人回答,我认为这是对我上面的评论的普遍同意,所以我将它们作为答案。
遗憾的是,答案是这并不容易 - 并且对可能的解决方案进行完整的技术处理超出了 StackOverflow 所能完成的范围。
Domino 的设计初衷并不是为了轻松回答“谁是有权阅读或更新此文档的所有用户”这一问题?回答“现在有哪些用户有权在该服务器上读取或更新此文档?”这个问题甚至都不容易回答。要回答这个问题,您必须从有权访问服务器的所有用户的列表开始,将其范围缩小到有权访问数据库的所有用户,并将该组划分为以下组:具有低于 Reader 访问权限的用户、具有以下权限的用户:具有读者访问权限、具有作者访问权限以及具有编辑访问权限或以上权限的用户。这需要查阅 ACL 并解析所引用的一个或多个 Domino 目录中的任何组。然后,您必须检查文档中的所有项目,以确定其中任何项目是否设置了“摘要读访问”或“摘要读/写访问”标志,如果有任何项目,您必须读取名称列表,这可能包括您必须从 ACL 解析的角色和/或您从一个或多个 Domino 目录解析的组。
我将在上面评论的基础上再添加一件事。既然您提到您正在使用 REST API,我认为尝试使用该方法确实是不切实际的。如果我面临这个要求,我只会考虑使用 Notes Java 或 C API 的方法,并且如果交互使用需要信息,我可能会构建一个服务器加载项来预先计算尽可能多的内容尽可能的信息。
关于java - 如何实现 Acl ServiceUtils.getAcl() 以从 Lotus Notes 检索用户信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36300398/
我使用一个简单的 Action 代理创建了一个自动回复代理,它当前响应所有发件人,我只想将回复发送给一组特定的发件人。 这是我想要实现的一个例子: 我有一个 Lotus Notes 邮件数据库,电子邮
我有一个要求,其中有一个带有附件的文档,当我点击一个按钮时,它会打开一个新表单。此表单必须在富文本字段中包含该附件。我在打开的新表单的 PostOpen 事件中编写了以下代码 Set item
我在 Windows 7 上使用 Lotus Notes 8.5.2。我想创建一个自定义 View 来显示除已发送邮件之外的所有电子邮件。换句话说,它包含:收件箱和所有文件夹。 目前我的 ALL DO
我正在设置一个 Lotus Notes 帐户来接受来自客户端的电子邮件,并自动将每封电子邮件保存为纯文本文件以供其他应用程序处理。 因此,我正在尝试在 Lotus 中创建我的第一个代理,以自动将电子邮
有没有不用付费软件就可以解锁 Lotus Notes 数据库设计的方法? 锁定数据库的人离开了公司,我们没有此应用程序的任何模板。因此,只有通过解锁此数据库才能开始进一步开发此数据库。 最佳答案 您是
我正在用 Lotus Notes 6.0.3(即将升级到 8.5)设计一个工作流数据库,我的操作系统是 Windows XP。 我最近尝试将选项卡式表格转换为可编程表格。这样我就可以控制在打开时向用户
我尝试在 Lotus Notes 中构建高级表单。某些字段应根据其他字段的状态隐藏。 我可以通过定义一个公式来隐藏一个字段。但问题是我必须首先保存文档,关闭它然后重新打开它才能看到字段被隐藏。 当我更
我在服务器 1 中有一个数据库,它引用服务器 2 中的多个数据库用于记录验证目的。当计划的代理运行时,它遇到“对象变量未设置”错误。但是,当我尝试手动运行代理(右键单击代理名称,单击运行)时,它运行顺
在 Lotus Notes 数据库上启用源代码控制很容易 - 这将维护数据库中所有设计元素的磁盘副本。但是,是否也可以包含文档?在我们的设计中,我们在数据库中的 Lotus Notes 文档中存储了大
我想以编程方式解密 Lotus Notes NSF 文件。假设对于每个 NSF,我都有访问 NSF 所需的 ID 文件和密码。 我使用的是 Lotus Notes 8.5.2,Windows 7 SP
我正在使用 Lotus Notes 数据库,我们整个公司都将其客户数据添加到其中。搜索功能应该为我提供客户,当我单击它时,我会获得日常工作所需的更详细信息。 但是,我必须搜索这个数据库,它在显示数据方
我有一个客户使用 Lotus Domino 作为他们的 Web 应用程序/服务器平台。客户有两个“Web 开发人员”,他们更熟悉 Lotus Domino,而不是更主流的工具和技术,并且不热衷于进行转
我的要求是收集 Lotus Notes 文档,对于给定的一组搜索词,这些文档包含: 所有这些条款, 这些条款中的任何一个 或没有这些条款。 我正在使用 Database.FTsearch(...)方法
我试图在我们的网站上设置 mailto。 我写了如下代码 mail us 当有人按下“向我们发送邮件”链接时,在 Lotus Notes 中,文本会直接出现在电子邮件地址所在的位置。 mail.us.
莲花 8.5.3 我需要做的是启动外部流程以响应符合特定条件的传入电子邮件。 规则无法做到这一点。很公平,看起来代理可以。 好的,所以设置一个带有代理的 LotusScript 来做我需要的,用运行测
在我的 Lotus Notes 代理中,我使用新表单临时创建了一些文档(表单中有一个富文本字段),在代码的末尾,我有“Call TempDoc.Remove(True)”,当程序执行这行代码,出现错误
我正在编写向用户发送邮件的代码。邮件文本包含日期。虽然日期计算正确,但日期仍以英语显示,即使所有用户都使用德语 Windows 操作系统并且在 Notes 首选项中将德语设置为他们的语言。这是我的代码
我们正在服务台团队中与 Lotus Notes 合作,了解我们回复消息需要多长时间会很有用。有什么办法可以实现这一点吗? 最佳答案 建议方法的问题在于,它们仅测量某人开始撰写响应之前的时间,而不是发送
我们正在服务台团队中与 Lotus Notes 合作,了解我们回复消息需要多长时间会很有用。有什么办法可以实现这一点吗? 最佳答案 建议方法的问题在于,它们仅测量某人开始撰写响应之前的时间,而不是发送
编辑操作按钮属性时,它允许 @if 语句翻转/翻转两个选择(锁定/解锁)。即 @If(enlock=1;"Unlock";"Lock") 用于操作按钮的“标签”。在“操作”属性的底部,图标可以是“无”
我是一名优秀的程序员,十分优秀!