ジャンボモナカ

34歳のハゲデブがHTML5ハイブリッドアプリ開発プラットフォームmonacaを始めました。

monacaのcordovaでニフクラ mbaasのUser Aclの権限設定

タイトルが長くなってしまった。

monacaのcordovaでニフクラ mbaasを使っている時の話。

Userクラスに登録されている各会員のAcl(パーミッション)をプログラムから変更したい場合どうすればいいのだろうか?

実は、ドキュメントにもこの部分についてのプログラムベースの記載がなかったりする。

Userクラス以外のデータストアを使ったクラスにおいてAclの設定については書いてあるが、あくまでUserクラスについての詳細はない。

そこで色々と試行錯誤した結果、setメソッドでAclの設定を行い、updateメソッドで更新することが判明した。

サンプルを書く。

条件

  • あるユーザーの情報が誰でも読み取り可能。

  • 更新権限は、自分自身のみ。

var _username;
var _password;
ncmb.User.login(_username, _password).then(function(user) {
  var acl = new ncmb.Acl();
  acl.setPublicReadAccess(true);
  acl.setUserWriteAccess(user,true);
  user.update().then(function(user) {
  }).catch(function(error) {
  });
}).catch(function(error){

});

当然と言えば当然なのだが、aclのメソッドを正しく設定しないとエラーが走ってしまい更新できないようだ。