非公式なニフティクラウド mobile backend向けのRubyライブラリ、ncmb-ruby-clientが、ACLを使った権限管理に対応しました。
インストール
ライブラリのインストールはRubygemsで行います。権限管理には 0.1.0 以降で対応しています。
gem install ncmb-ruby-client
使い方
データストアのインスタンスを作成し、aclメソッドに対して設定を行います。
@testData = NCMB::DataStore.new 'testData' @item = @testData.new @item.Message = 'World' # 全体の指定 @item.acl.public('read', true) @item.acl.public('write', false) # 個別のユーザ指定 @item.acl.user(user, 'read', true) @item.acl.user(user, 'write', true) # ロールを使う場合 @role = NCMB::Role.find_or_create("manager") @item.acl.role(@role, 'read', true) @item.acl.role(@role, 'write', true) @item.save
acl.public は全体に対しての設定です。acl.userは個別のユーザを指定します。ユーザを指定する場合は NCMB::User クラスを使ってください。 NCMB.CurrentUser でログイン中のユーザも指定できます。ロールはNCMB::Roleを使って行います。
追加
NCMB::Objectクラスにdeletable?メソッドを追加しました。権限がない状態で削除実行するとAPIErrorが発生するので、あらかじめdeletable?を使って編集、削除権限があるかどうかをチェックできます。現時点ではdeletable?はロールには対応していませんので注意してください。
権限設定はデータストアに自由に追加できます。また、ユーザに対しても設定可能で、ユーザ名を公開すると言った使い方もできます。
moongift/ncmb-ruby-client: A simple Ruby client for the Nifty cloud mobile backend REST API