データストア(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以上