"queryAccess" - Database- クラスのメソッドを使用すると、現在のアクセス レベルを確認できます。このアクセス レベルが > ACL.LEVEL_AUTHOR の場合、ユーザーは確実にカレンダーに書き込むことができます。
アクセスが少ない場合、状況は少し複雑になります。
カレンダー ドキュメントは特別なものです。いわゆる「公文書」です。したがって、アクセスレベルだけが適切なアクセスの指標ではありません。
2 つの可能性があります。ユーザーはカレンダー ドキュメントへの「読み取り」アクセスを取得できます。
アクセス レベル >= ACL.LEVEL_READER またはユーザーは、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();
}
}
}