6. グループ管理

ここではグループ管理機能の利用方法について説明します。

6.1. グループの作成

最初にグループオブジェクトを作成します。

// NbService, グループ名を指定して NbGroup を生成
NbGroup group1 = new NbGroup(mService, "group1");

次に、addUser(), addGroup() を使用して、グループにユーザおよびグループを追加し、save() でサーバに保存します。

group1.addUser("123456789abcdef123456"); // ユーザ追加
group1.addGroup("group2");
group1.save(new NbCallback<NbGroup>() {
    ....
});

追加するユーザはユーザID(ユーザ名ではない)を、グループはグループ名を指定します。

グループには、以下の予約グループを追加することもできます。

  • authenticated: 全認証済ユーザ
  • anonymous: 未認証ユーザを含む全ユーザ

6.2. アクセス制御

グループ単位でアクセス制御を行うことができます。 アクセス権を設定する場合は setAcl() を使用し、 save() で保存します。

NbAcl acl = new NbAcl();
acl.addEntry(NbAclPermission.READ, "g:anonymous");
group1.setAcl(acl);
group1.save(...);

ACL の詳細については「デベロッパーマニュアル」の「セキュリティ:ACL」の節をご覧ください。

6.3. グループの取得

グループ一覧を取得するには、query() を使用します。

// グループ一覧取得
NbGroup.query(new NbCallback<List<NbGroup>>() {
    @Override
    public void onSuccess(List<NbGroup> groups) {
        ...
    }
    @Override
    public void onFailure(int status, NbErrorInfo errorInfo) {
        ...
    }
});

結果は NbGroup クラスの List で返却されます。

特定のグループを取得するには、getGroup() を使用します。 第1引数に検索したいグループ名を指定します。

// グループ情報取得
NbGroup.getGroup("group2", new NbCallback<List<NbGroup>>() {
    @Override
    public void onSuccess(List<NbGroup> groups) {
        ...
    }
    @Override
    public void onFailure(int status, NbErrorInfo errorInfo) {
        ...
    }
});

6.4. グループの更新

ユーザを更新するには、グループを検索し、addUser() / removeUser() など を使用してエントリの変更を行い、save() で更新します。

6.5. グループの削除

グループを削除するには、delete() を使用します。

NbGroup group = new NbGroup("group2");

// グループ削除
group.delete(new NbResultCallback() {
    @Override
    public void onSuccess() {
        ...
    }
    @Override
    public void onFailure(int status, NbErrorInfo errorInfo) {
        ...
    }
});