サーバー構築不要!スマートフォンアプリ向けの新クラウド

トップ >ドキュメント >SDKガイド(iOS):ロールの利用

SDKガイド(iOS)

ロールの利用

このドキュメントは更新されていません。
こちらから最新版をご覧ください。

ロール機能について

ロールは、会員をグルーピングすることで、データやファイルへのアクセス制限時に
グループ別の設定ができるようになる機能です。

プロパティ

ロールクラスの主要規定フィールドは以下のとおりです。

// name: ロール名
// users: 所属するユーザー
// roles: 所属するロール

ロールの作成

ロールの作成は、ロール名を決めて保存するだけです。
データ保存時と同じようにsaveInBackgroundWithBlockメソッドを用いると、
非同期処理でロールを登録することもできます。

//ロールの作成
NCMBRole *freePlanRole = [NCMBRole roleWithName:@"freePlan"];
[freePlanRole saveInBackgroundWithBlock:nil];

NCMBRole *proPlanRole = [NCMBRole roleWithName:@"proPlan"];
[proPlanRole saveInBackgroundWithBlock:nil];

データにロール毎のアクセス制限を設ける

作成したオブジェクトにACLを設定する場合、
以下のようにロール名を指定することができます。

//proPlanのみアクセスを許可するACLオブジェクトを作成
NCMBACL *acl = [[NCMBACL alloc]init];
[acl setReadAccess:YES forRoleWithName:@"proPlan"];
[acl setWriteAccess:YES forRoleWithName:@"proPlan"];
[acl setPublicReadAccess:NO];
[acl setPublicWriteAccess:NO];

//オブジェクトにaclを設定して保存
NCMBObject *data = [NCMBObject objectWithClassName:@"items"];
[data setObject:@"sword" forKey:@"name"];
[data setACL:acl];
[data save:nil];

会員をロールに追加する

//ユーザーを作成
NCMBUser *user = [NCMBUser user];
[user setUserName:@"expertUser"];
[user setPassword:@"pass"];
[user signUp:nil];

//登録済みユーザーをロールに追加
NCMBQuery *query = [NCMBQuery queryWithClassName:@"role"];
[query whereKey:@"roleName" equalTo:@"expertPlan"];
[query getFirstObjectInBackgroundWithBlock:^(NCMBObject *object, NSError *error) {
    if (error == nil) {
        NCMBRole *role = (NCMBRole *) object;
        [role addUser:user];
        [role save:nil];
    }
}];

子ロールの追加

NCMBRole *administrators = [NCMBRole roleWithName:@"Administrators"];
NCMBRole *moderators = [NCMBRole roleWithName:@"Moderators"];
[moderators addRole:administrators];
[moderators save:nil];

お探しの内容が見つからなかった場合はユーザーコミュニティ もご活用ください。(回答保証はいたしかねます)
なお、 Expertプラン以上のお客様はテクニカルサポートにてご質問を承らせて頂きます。

推奨画面サイズ1024×768px以上

ページの先頭へ