6. グループ管理¶
ここではグループ管理機能の利用方法について説明します。
6.1. グループの作成¶
最初にグループオブジェクトを作成します。
NBGroup newGroup = [NBGroup groupWithName:@"group1"];
newGroup.users = [NSMutableArray array]; // ユーザ追加の例
[newGroup.users addObject:@"id_of_user1"];
[newGroup.users addObject:@"id_of_user2"];
newGroup.groups = [NSMutableArray array]; // グループ追加の例
[newGroup.groups addObject:@"child_group1"];
[newGroup.groups addObject:@"child_group2"];
所属するユーザ、グループをそれぞれ users,groups へ NSArray で指定し、 saveInBackgroundWithBlock メソッドで保存します。 また、グループには以下の予約グループを追加することもできます。
- authenticated: 全認証済ユーザ
- anonymous: 未認証ユーザを含む全ユーザ
[newGroup saveInBackgroundWithBlock:^(NSArray *groups, NSError *error) {
if (!error) {
// 成功時の処理
} else {
// エラー時の処理
}
}];
6.2. アクセス制御¶
グループ単位でアクセス制御を行うことができます。 アクセス制御には、オブジェクトストレージ等と同様に NBAcl クラスを使用します。 NBGroup の acl プロパティに設定します。
newGroup.acl = [NBAcl new];
// anonymous グループに read 権限付加
[newGroup.acl addEntry:@"g:anonymous" permission:NBAclReadable];
// anonymous グループに write 権限付加
[newGroup.acl addEntry:@"g:anonymous" permission:NBAclWritable];
ACL の詳細については「デベロッパーマニュアル」の「セキュリティ:ACL」の節をご覧ください。
6.3. グループの取得¶
グループ名から、グループ情報を取得するには、 getGroupInBackgroundWithName メソッドを使用します。 以下の例では "name1" グループを取得しています。
[NBGroup getGroupInBackgroundWithName:@"name1" block:^(NSArray *groups, NSError *error) {
if (!error) {
// 成功時の処理
NBGroup *group = groups[0];
} else {
// エラー時の処理
}
}];
6.4. グループ一覧の取得¶
グループ一覧を取得するには、 queryGroupInBackgroundWithBlock を使用します。 取得した一覧は groups に NBGroup の配列で渡されます。
[NBGroup queryGroupInBackgroundWithBlock:^(NSArray *groups, NSError *error) {
if (!error) {
// 成功時の処理
} else {
// エラー時の処理
}
}];
各グループについては、get() でプロパティを取得できます。 取得できるプロパティには以下のものがあります。
6.5. グループの更新¶
グループを更新するには、取得した NBGroup のプロパティを編集し、 作成時と同様に saveInBackgroundWithBlock メソッドを呼ぶことで更新できます。
6.6. グループの削除¶
グループを削除するには、deleteInBackgroundWithBlock を使用します。 削除するグループは事前に取得します。
[createdGroup deleteInBackgroundWithBlock:^(NSError *error) {
if (!error) {
// 成功時の処理
} else {
// エラー時の処理
}
}];