Java 检查用户是否对另一个lotusCalendar具有编辑权限

Java 检查用户是否对另一个lotusCalendar具有编辑权限,java,calendar,lotus-notes,Java,Calendar,Lotus Notes,我实际上是用JAVA编写代码的,当某个特定用户试图更新/删除另一个用户的lotus日历条目时,遇到了一些问题 有两个用户userA和userB。userA在userB的日历上只有“读取”权限。事实上,当userA尝试更新userB的日历时,我有以下错误,因为userA只有读取权限: NotesException: Notes error: You are not authorized to perform that operation 在java中,我要做的是在继续更新userB的日历之前检查

我实际上是用JAVA编写代码的,当某个特定用户试图更新/删除另一个用户的lotus日历条目时,遇到了一些问题

有两个用户userA和userB。userA在userB的日历上只有“读取”权限。事实上,当userA尝试更新userB的日历时,我有以下错误,因为userA只有读取权限:

NotesException: Notes error: You are not authorized to perform that operation
在java中,我要做的是在继续更新userB的日历之前检查userA是否具有读取权限或编辑权限。

使用Database-类的“queryAccess”-方法,您可以找到当前的访问级别。如果这个访问级别是>ACL.level\u AUTHOR,那么用户肯定可以写入日历

如果访问权限较低,那么事情就会变得更复杂一些

日历文档是一些特殊的东西。它们被称为“公共文件”。因此,访问级别并不是正确访问的唯一指标

有两种可能性,用户可以“读取”日历文档:

访问级别>=ACL.level\读卡器或用户已在ACL中启用“读取公共文档”

这可以使用数据库类的“queryAccessPrivileges”方法进行检查

要能够写入日历条目,必须启用“写入公共文档”

以下是代码,它尊重所有这些方面:

import lotus.domino.*;

public class JavaAgent extends AgentBase {

    public void NotesMain() {

      try {
          Session session = getSession();
          AgentContext agentContext = session.getAgentContext();

          Database db = agentContext.getCurrentDatabase();
          String user = session.getUserName();
          int accLevel = db.queryAccess(user);
          int accPriv = db.queryAccessPrivileges(user);
          boolean blnCanWriteCalendar = false;
          boolean blnCanReadCalendar = false;
          blnCanWriteCalendar = ((accPriv & Database.DBACL_WRITE_PUBLIC_DOCS) > 0)
               | accLevel > ACL.LEVEL_AUTHOR;
          blnCanReadCalendar = ((accPriv & Database.DBACL_READ_PUBLIC_DOCS) > 0)
               | accLevel >= ACL.LEVEL_READER;

      } catch(Exception e) {
          e.printStackTrace();
       }
   }
}

非常感谢,先生,我已经实现了它,但这会返回用户是否具有作者/存款人/访问权限。。权利。dbMail=notesSession.getDatabase(doc.getItemValueString(“MailServer”)、doc.getItemValueString(“MailFile”);int accLevelCal=dbMail.queryAccess(notesSession.getUserName());字符串titleMail=dbMail.getTitle();我仍然无法检索用户日历上的读取/编辑/删除权限。有什么帮助吗