我正在尝试找到一种方法来保存特定Lotus notes文档的完整用户列表访问权限.
我知道我可以从catalog.nsf获取数据库级ACL,但不能从文档级访问.此外,文档的作者字段 – 我相信 – 不会列出只读访问用户.
有谁知道如何获取特定文档的每个用户的完整ACL?
任何帮助表示赞赏,谢谢!
编辑:拼写.
解决方法:
西蒙是对的.这是非平凡的.虽然我会跳过他关于阅读表格的建议,但它仍然是非平凡的.即使根据您的问题仅检查单个文档,这也是非常重要的.我知道审计人员有时会想要这种类型的信息,但是Domino的安全系统并没有考虑到这一点,并且没有内置的API来获取信息.
在Java中,您需要使用Document.getItems()方法来检索所有Items的向量.然后你必须浏览项目.您需要检查Item.getType()以确定它是否是Item.READERS或Item.AUTHORS.如果是,则需要执行Item.getValues()来检索值的向量,并且必须循环遍历向量检查以查看每个值是否为角色.如果它是一个角色,则必须使用Database.getACL()并遍历ACLEntries以确定哪些具有该角色以及它们是Person条目还是Group条目.如果它们是组条目,则必须在Domino目录中查找组成员 – 这可能需要扩展嵌套组.对于Item中不是角色的任何值,您可以检查Domino目录中的值以查看它是否是有效的Person或Group – 并再次展开该组,直到最终到达People.对于Domino目录中的查找,您必须担心可能配置目录服务的事实,在这种情况下可以检查多个Domino目录数据库,但如果您可以使用Notes / Domino 8,这会更容易一些,因为有一个为您处理的目录类.