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

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

SDKガイド(Unity)

ドキュメント内検索

ロールの利用

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

ロール機能について

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

プロパティ

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

// Name: ロール名
// Users: 所属するユーザー
// Roles: 所属するロール

ロールの作成

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

NCMBRole proPlanRole = new NCMBRole ("proPlan");
proPlanRole.SaveAsync ();

※すでに保存してあるロール名で新規保存すると重複エラーになります

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

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

//proPlanのみアクセスを許可するACLオブジェクトを作成
NCMBACL acl = new NCMBACL ();
acl.SetRoleReadAccess ("proPlan", true);
acl.SetRoleWriteAccess ("proPlan", true);
NCMBObject obj = new NCMBObject ("SaveTest");
obj.ACL = acl;
obj.SaveAsync ();

この場合は、proPlan所属のユーザーのみ保存したオブジェクトの読込、書込権限が与えられます。

※ロール作成時のACLについて
ロール新規作成時にACLの設定を付与しない場合(デフォルト)は、そのロールに対して全員に読込、書込権限が与えられます。

会員をロールに追加する

NCMBUser expertUser = new NCMBUser ();
expertUser.UserName = "expertUser";
expertUser.Password = "pass";
expertUser.SignUpAsync ((NCMBException e) => {
    if (e != null) {
        //エラー処理
    } else {
        //作成したユーザーをロールに追加
        NCMBRole expertPlanRole = new NCMBRole ("expertPlan");
        expertPlanRole.Users.Add (expertUser);
        expertPlanRole.SaveAsync ();
    }
});

※ユーザーをロールに追加する際は、追加するユーザーが保存済である必要があります

子ロールの追加

NCMBRole silverRole = new NCMBRole ("silverRole");
silverRole.SaveAsync ((NCMBException e) => {
    if (e != null) {
        //エラー処理
    } else {
        NCMBRole bronzeRole = new NCMBRole ("bronzeRole");
        bronzeRole.Roles.Add (silverRole);
        bronzeRole.SaveAsync ();
    }
});

※子ロールを親ロールに追加する際は、子ロールが保存済である必要があります

ロールの検索

NCMBObject同様クエリで検索可能です。

NCMBQuery<NCMBRole> query = NCMBRole.GetQuery ();
query.WhereEqualTo ("roleName", "proPlan");
query.FindAsync ((List<NCMBRole> roleList,NCMBException e) => {
    if (e != null) {
        //エラー処理
    } else {
        foreach (NCMBRole role in roleList) {
            Debug.Log ("roleName:" + role.Name);
        }
    }
});

所属する子ロール、または会員を検索する事もできます。

//所属ロールの検索
NCMBQuery<NCMBRole> query = bronzeRole.Roles.GetQuery ();
query.FindAsync ((List<NCMBRole> roleList,NCMBException e) => {
    if (e != null) {
        //エラー処理
    } else {
        //成功時の処理
        foreach (NCMBRole role in roleList) {
            Debug.Log ("roleName:" + role.Name);
        }
    }
});

//所属ユーザーの検索
NCMBQuery<NCMBUser> query = expertPlanRole.Users.GetQuery ();
query.FindAsync ((List<NCMBUser> userList,NCMBException e) => {
    if (e != null) {
        //エラー処理
    } else {
        //成功時の処理
        foreach (NCMBUser user in userList) {
            Debug.Log ("userName:" + user.UserName);
        }
    }
});

ユーザーの検索時は、検索対象のユーザーに付与されているACL設定にご注意ください。
ユーザー新規作成時にACLの設定を付与しない場合(デフォルト)は、自分自身のみ読込、書込権限が与えられているので、
検索をかける時は、検索者に対して読込権限が与えられている必要があります。

ロールの削除

ロールを削除する場合は、DeleteAsyncメソッドを利用します。

proPlanRole.DeleteAsync ((NCMBException e) => {
    if (e != null) {
        //エラー処理
    } else {
        //成功時の処理
    }
});

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

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

ページの先頭へ