6. グループ管理

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

6.1. グループの作成

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

var group1 = new NbGroup("group1");

次に、グループの Users, Groups プロパティにそれぞれユーザおよびグループを追加し、SaveAsync() でサーバに保存します。

group1.Users.Add("123456789abcdef123456"); // ユーザ追加
group1.Groups.Add("group2"); // グループ追加
var resultGroup = await group1.SaveAsync();

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

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

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

6.2. アクセス制御

グループ単位でアクセス制御を行うことができます。 アクセス権を設定する場合は Acl プロパティに設定し、SaveAsync() で保存します。

NbAcl acl = new NbAcl();
acl.R.Add("g:anonymous"); // 読み取り権限
group1.Acl = acl;
await group1.SaveAsync();

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

6.3. グループの取得

グループ一覧を取得するには、QueryGroupAsync() を使用します。 結果は IEnumerable<NbGroup> で返却されます。

// グループ一覧取得
var groups = await NbGroup.QueryGroupAsync();
foreach (var group in groups) {
    ...
}

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

// グループ情報取得
var group = await NbGroup.GetGroupAsync("group2");

6.4. グループの更新

ユーザを更新するには、グループを検索し、Users / Groups プロパティを を使用してエントリの変更を行い、SaveAsync() で更新します。

6.5. グループの削除

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

var group = await NbGroup.GetGroupAsync("group2");
await group.DeleteAsync();