2016-04-25 13 views
0

私は条件は、ユーザがグループ内にあり、削除権限&を持つ場合は、グループ内のすべてのユーザーがドキュメントを削除することができます...setCanDeleteDocuments()Lotus NotesのACL

ある文書を、削除しようとしています。

しかし、私が指定した名前がACLに明示的にリストされていて、削除権を持っていない場合は、問題はありません。十分な公正なグループ権限はチェックされません。

私は以下のコードでグループに属するユーザーに削除権を付与しようとしています。それがエラーのように示して

var acl:NotesACL=database.getACL(); 
var entry:NotesACLEntry=acl.getFirstEntry(); 
if(entry!=null) 
{ 
var user:NotesACLEntry=acl.getEntry(@UserName()); 
if(user.isCanDeleteDocuments()==false) 
{ 
user.setCanDeleteDocuments(true); 
acl.save(); 
} 
} 

は、 例外は、メソッドNotesACL.save()はnullを呼び出す発生しました。

明示的に追加されたユーザーであっても、ユーザータイプ=人& ACL内のアクセス=マネージャーです。

他にもこれを行う方法はありますか?

ご協力いただければ幸いです。 ありがとうございます。

答えて

3

databaseを出発点として使用するということは、データベースをユーザーとして取得していることを意味します。ユーザーがすでにデータベースへのマネージャーアクセス権を持っていない限り、ユーザーはACLを更新するアクセス権がないため、これは失敗します。

sessionAsSignerを使用できますが、getCurrentDatabase()メソッドを使用することはできません。代わりに、getDatabase(server,filePath)メソッドを使用して、署名者権限を持つデータベースを取得する必要があります。明らかに、署名者はACLを変更する権利も必要です。

関連する問題