我试图找到一种方法来保存特定Lotus Notes文档完整的用户列表的访问权限。
我知道我可以从CATALOG.NSF得到数据库级的ACL的,但不是文档级别的访问。 另外,文件-I相信 - 的作者字段不会列出只读访问权限的用户。
有谁知道如何获得每个用户的完整的ACL特定文档?
任何帮助表示赞赏,谢谢!
编辑:拼写。
我试图找到一种方法来保存特定Lotus Notes文档完整的用户列表的访问权限。
我知道我可以从CATALOG.NSF得到数据库级的ACL的,但不是文档级别的访问。 另外,文件-I相信 - 的作者字段不会列出只读访问权限的用户。
有谁知道如何获得每个用户的完整的ACL特定文档?
任何帮助表示赞赏,谢谢!
编辑:拼写。
西蒙是正确的。 这是不平凡的。 即使我将跳过读取形式他的建议,它仍然是不平凡的。 即使检查只是一个单一的文件,按您的问题,这是不平凡的。 我知道审计师有时候想正是这种类型的信息,但Domino的安全系统设计时没有考虑到这一点,并没有内置的API来获取信息。
在Java中,你需要使用Document.getItems()
方法来检索所有项目的载体。 然后,你必须通过的项目看。 你需要检查Item.getType()
以确定它是否是一个Item.READERS
或Item.AUTHORS
。 如果是,那么你需要做Item.getValues()
来检索值的向量,而你通过矢量检查必须循环,看看每个值是一个角色。 如果它是一个角色,你必须使用Database.getACL()
并通过迭代ACLEntries
以确定哪些有作用,无论是个人条目或组条目。 如果他们是组条目必须查找在Domino目录中的组成员 - 这可能需要扩大嵌套组。 对于该项目不属于任何角色的价值观,你必须检查对Domino目录价值,看它是否是一个有效的个人或集团 - 而再次展开组,直到你最终得到的人。 对于Domino目录中查找你需要担心的是,目录服务可以配置在这种情况下,可以有多个Domino Directory数据库来检查,但是这是如果你可以使用Notes / Domino 8的,因为有一个比较容易Directory
类,需要照顾的那个你。
你所要求的是有点不繁琐。
数据库的ACL。 您需要确定以下。
接下来,你需要读取数据库中的每个文件。 为了做到这一点,你需要做这样的访问权限。 所以这将是读者访问至少(如果设置的文件)以及访问加密字段(如果再次设置)。
您可以使用NotesNoteCollection类通过设计+文档进行迭代。
http://publib.boulder.ibm.com/infocenter/domhelp/v8r0/topic/com.ibm.designer.domino.main.doc/H_NOTESNOTECOLLECTION_CLASS.html
检查设计将让您阅读形式,看看他们是否有一个读者场,什么值设置。 之后,你可以检查文档是否设置不是静态的相关表格。
在一个侧面点。 如果你正在尝试诊断特定用户对应用程序,你可以使用下面的NOTES.INI设置。
DEBUG_THREADID=1
DEBUG_SERVERACL=2
这将打印出来的Domino控制台每次的ACL请求时上。 它将打印正在请求,他们要求什么水平,他们有什么水平,他们被赋予哪些访问。
调试是非常详细,但这样只能用于诊断问题并在完成后禁用。