ニフクラmBaaSお役立ちブログ

スマホアプリ開発にニフクラmBaaS。アプリ開発に役立つ情報をおとどけ!

Rubyライブラリで権限管理に対応しました

非公式なニフティクラウド 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