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

トップ >ドキュメント >データストア(Swift):アクセス権限設定

データストア(Swift)

アクセス権限設定

概要

このページでは、データストアのACL機能を利用して各データのアクセス権限を
会員やロールごとに設定する方法を解説していきます。

データごとのACL設定

アプリ側でACLを設定する

ACLを設定する場合は、NCMBACLクラスを利用します。

//ACLオブジェクトを作成
var acl : NCMBACL = NCMBACL.empty

//読み込み・検索を全開放
acl.put(key: "*", readable: true, writable: false)
let object : NCMBObject = NCMBObject(className: "aclTest")

//オブジェクトにACLを設定
object.acl = acl

object.saveInBackground(callback: { result in
    switch result {
    case .success:
        print("保存に成功しました")
    case let .failure(error):
        print("保存に失敗しました: \(error)")
    }
})

上のサンプルコードでは、全会員に対してのACL設定を行っていますが、
会員やロールを対象にACLを設定することも可能です。
このとき、会員やロールは登録が済んでおりobjectIdを持っている必要があります。

let sharedNote : NCMBObject = NCMBObject(className: "Note")
sharedNote["content"] = "This note is shared!"

//NCMBACLのインスタンスを作成
var acl : NCMBACL = NCMBACL.empty

//引数で渡された会員userへの読み込みと書き込み権限を設定する
acl.put(key: "user1", readable: true, writable: true)

//ACLをオブジェクトに設定する
sharedNote.acl = acl

許可権限を設定する場合は、必ずtrue値の設定が必要となります。
false値の設定は反映されません。
一つの権限でもtrue値を設定されますと、他の権限はすべてfalseとなります。

デフォルトACLについてはREST APIにてご確認ください。

管理画面でACLを設定する

管理画面からパーミッションを設定するにはデータストアを開きます。
各レコードの右側にあるパーミッション編集ボタンをクリックします。
レコードのパーミッション設定画面
パーミッション設定画面が表示されますので、「+新しいパーミッション」ボタンをクリックして、パーミッションを設定してください。

レコードのパーミッションは、各行の左側にあるチェックボックスをクリックし、削除ボタンをクリックすると削除できます。

クラスのACLを設定する

管理画面からの操作のみ、クラス単位でACLを設定することが可能です。

クラスの編集画面で、右上の「パーミッションの設定」ボタンをクリックします。
クラスのパーミッション設定
ポップアップが表示されるので、「+新しいパーミッション」をクリックしてパーミッションの設定を追加してください。
対象を会員やロールに限定することで、パーミッションを一部の会員に限定することが可能です。

クラスのパーミッションは、各行の左側にあるチェックボックスをクリックし、削除ボタンをクリックすると削除できます。

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

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

ページの先頭へ