我想确定当前用户是否具有删除权限。我可以检查这个人的ACLEntry,但是如果他们从一个或多个组获得他们的访问权限,这将意味着循环访问ACL中的组名,并检查他们是否具有删除权,然后查看用户是否是组。这可能是一个相当密集的过程。我听说在分机里可能有一种方法,但一直没能找到任何东西。 确定用户是否可以删除文档的最佳方法是什么?有没有一种方法来确定是否删除用户?
1
A
回答
6
适应this example咯,这里将允许您查询此特权的函数(和其他几个人,良好的指标):
function getUserPrivileges() {
var privileges = database.queryAccessPrivileges(context.getUser().getDistinguishedName());
return {
createDocuments: ((privileges & NotesDatabase.DBACL_CREATE_DOCS) > 0),
deleteDocuments: ((privileges & NotesDatabase.DBACL_DELETE_DOCS) > 0),
readPublicDocuments: ((privileges & NotesDatabase.DBACL_READ_PUBLIC_DOCS) > 0),
writePublicDocuments: ((privileges & NotesDatabase.DBACL_WRITE_PUBLIC_DOCS) > 0)
};
}
如果您添加上面的脚本库,那么任何代码引用该库可以包括诸如以下逻辑:
if (getUserPrivileges().deleteDocuments) {
// delete something…
}
为了进一步增强灵活性,你可以调整getUserPrivileges()
功能的特定数据库用户尝试从,而不是删除在传递一个手柄总是假设它是最新的。
+1
蒂姆 - 再次感谢,知道它必须在那里找不到它。 –
相关问题
- 1. ejabberd:有没有一种方法可以确定用户是否是管理员?
- 2. 有没有一种方法来确定语法中的歧义?
- 3. 有没有一种有效的方法来确定距离?
- 4. 有没有另一种方法来确定网站用户比IP?
- 5. 有没有一种方法来确定用户是否使用文本输入控制?
- 6. Smalltalk - 有没有一种方法来确定数据类型?
- 7. 在Javascript中有没有一种方法来确定是否没有元素是焦点?
- 8. 有没有一种方法来确定在Java方法中使用的变量?
- 9. 有没有一种方法来确定一个iframe是可见/主动
- 10. 有没有一种优雅的方式来确定ifstream是否附加到stdin?
- 11. 有没有一种方法来确定一个文档是否是一个文本句子文件?
- 12. 有没有一种确定变量是否引用用户定义函数的好方法?
- 13. 是否有现成的方法来确定疯狂变种
- 14. 是否有一个lucene.net(C#)方法来删除停用词?
- 15. 有没有一种快速的方法来删除在C#中使用语句?
- 16. 有没有一种方法来确定电子邮件是否是使用ews c#的回复/回复?
- 17. 有没有办法确定Firebase用户的UID是否有效?
- 18. 是否有另一种删除多个头的方法?
- 19. 有没有一种方法来验证一个词是否存在于确定的习惯用语中?
- 20. 有没有一种方法来确定一个double是否是C#中的实数?
- 21. 有没有一种方法来确定一个软件包是否安装distutils而不是setuptools?
- 22. 有没有一种方法,以确定是否一个方法是要在C#中被内联
- 23. 是否有一种简单的方法来删除列表项中的空白
- 24. 有没有一种“正确的方法”来避免output_buffering?
- 25. 有没有一种方法可以删除HBITMAP而不是使用DeleteObject()?
- 26. 有没有一种方法来确定现有的git回购行结束?
- 27. 一种确定网站是否有效的方法
- 28. 有没有办法确定是否有任何外围设备已被删除?
- 29. 有没有一种方法或技巧,以确定是否由用户在关机
- 30. 有没有一种安全的方法来删除JointJS文件/图
伟大的问题,会为我节省很多时间。 –