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

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

SDKガイド(JavaScript)

ドキュメント内検索

ロールの利用

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

ロール機能について

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

プロパティ

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

// roleName:   ロール名
// belongUser: 所属するユーザーのリレーション
// belongRole: 所属するロールのリレーション
// acl:        アクセス権限
// objectId:   オブジェクトのユニークID(save時に付加)
// createDate: オブジェクトの初回保存日時(save時に付加)
// updateDate: オブジェクトの最新更新日時(update時に付加)

ロールの作成

コンストラクタにロール名を入力してインスタンスを生成し、保存します。

var ncmb = new NCMB(apikey, clientkey);

var freePlanRole = new ncmb.Role("freePlan");
freePlanRole.save()
            .then(function(){
              // 非同期処理
            })
            .catch(function(err){
              // エラー処理
            });

var proPlanRole = new  ncmb.Role("proPlan");
proPlanRole.save(function(err, role){
    // コールバック処理
  });

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

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

//proPlanのみアクセスを許可するACLオブジェクトを作成
var acl = new ncmb.Acl();
acl.setRoleReadAccess("proPlan", true);
acl.setRoleWriteAccess("proPlan", true);
acl.setPublicReadAccess(false);
acl.setPublicWriteAccess(false);

//オブジェクトにaclを設定して保存
var Item = new ncmb.DataStore("Item");
var item = new Item();
item.set("name", "sword");
item.set("acl",acl);
item.save();

会員をロールに追加する

addUserで会員を追加して保存することで、ロールに所属させることができます。
Userインスタンスの配列を入力することで、一度に複数の会員を追加することもできます。

所属している会員をロールから外す場合にはremoveUserに会員を入力して保存します。

var user = new ncmb.User();
user.set("userName", "expertUser");
user.set("password", "pass");
user.signUpByAccount()
    .then(function(user){
      console.log("user:"+ user.userName);

      //作成したユーザーをロールに追加
      var role = new ncmb.Role("expertPlan");
      role.addUser(user)
          .save();
    })
    .catch(function(err){
      // エラー処理
    });

子ロールの追加

addRoleでロールを追加して保存することで、ロールに別のロール(子ロール)を所属させることができます。
Roleインスタンスの配列を入力することで、一度に複数の子ロールを追加することもできます。

所属している子ロールをロールから外す場合にはremoveRoleに子ロールを入力して保存します。

var administrators = new ncmb.Role("Administrators"); // “Administrators”ロール
var moderators = new ncmb.Role("Moderators"); // "Moderators"ロール
moderators.addRole(administrators);
moderators.save();

会員・子ロールの取得

fetchUser/fetchRoleを実行することで、所属している会員・子ロールを取得することができます。

ncmb.Role.fetch()
         .then(function(role){
           return role.fetchUser();
          })
         .then(function(users){
            for (var i = 0; i < users.length; i++) {
              var user = users[i];
              console.log (user.userName);
            }
          })
         .catch(function(err){
            // エラー処理
          });

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

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

ページの先頭へ