1
0

More than 1 year has passed since last update.

Go言語向けNCMB SDKの使い方(ACLの使い方)

Posted at

NCMBはモバイル向けのBaaS(mobile Backend as a Service)ですが、サーバー側のデータとNCMB上のデータを連係させたいというニーズは良くあります。

そんなときには各言語向けのSDKがあると便利です。サーバー向けにはRuby、Python、PHP、Java、C#のSDKがあります(すべて公式サポート対象外の、コミュニティSDKという位置づけです)。

今回はGo言語向けのSDK開発をはじめたので、その使い方を紹介します。この記事ではACL(アクセス権限)の使い方を解説します。

ソースコード

ソースコードはGitHubにて公開しています。ライセンスはMIT Licenseになります。

NCMBMania/ncmb_go

インストール

SDKのインストールは下記コマンドで行います。

go get -u github.com/NCMBMania/ncmb_go

インポート

続けてSDKをインポートします。

import (
    "github.com/NCMBMania/ncmb_go"
)

初期化

NCMBより取得したアプリケーションキー、クライアントキーを使って初期化します。

ncmb := NCMB.Initialize("YOUR_APPLICATION_KEY", "YOUR_CLIENT_KEY")

ACLについて

NCMBで用意されているACLは、クラス(データベースでいうテーブル相当)または行単位で設定できます。クラス全体に対するACLは管理画面からのみ指定できます。そのため、SDKでは行単位のACLが対象となります。

ACLは以下の3パターン、READ/WRITEの2種類で設定できます。WRITEは編集および削除権限になります。

  • 全体
  • 特定のユーザー
  • 特定のグループ

ACLの使い方

ACLは以下のメソッドで作成します。

acl := ncmb.Acl()

この acl に対して、設定を行います。

全体のへのACL設定

全体の場合、以下のメソッドを利用します。

// 全体への読み込み権限
acl.SetPublicReadAccess(false) // false は読み込み不可の指定

// 全体への編集権限
acl.SetPublicWriteAccess(false) // false は編集権限不可の指定

特定ユーザー向けのACL設定

ユーザーの場合は、ユーザーオブジェクトと一緒に指定します。

user, err := ncmb.SignUpByAccount(userName, password)

acl.SetUserReadAccess(user, true)
acl.SetUserWriteAccess(user, true)

特定グループ向けのACL設定

特定のグループを指定する場合には、そのグループ名(ロール名)を指定します。

acl.SetRoleReadAccess("Admin", true)
acl.SetRoleWriteAccess("Admin", true)

ACLの設定

ACLをアイテムと紐付ける場合には、 SetAcl を利用します。

item.SetAcl(acl)

ACLの取得

ACLを取得する際には、 GetAcl を利用します。

acl, err := item.GetAcl()

ACLの確認

設定状態を確認する際には、Set系に対応するGetメソッドで取得してください。

  • GetPublicReadAccess() bool
  • GetPublicWriteAccess() bool
  • GetUserReadAccess(user *User) bool
  • GetUserWriteAccess(user *User) bool
  • GetRoleReadAccess(role string) bool
  • GetRoleWriteAccess(role string) bool

注意点

ACLで false を設定した場合、そのデータは保存されません。NCMBではfalse設定は不要で、trueのみを設定します。そのため、false設定で保存した場合には、管理画面上はデータがありません(SDKではfalseが返ってきます)

まとめ

まだ基本的な機能しかありませんが、徐々にバージョンアップしていきます。

Go言語を使ってWebアプリケーションを開発している方は、そのデータ保存先としてNCMBを利用してみてください。

mBaaSでサーバー開発不要! | ニフクラ mobile backend

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0