データには適切なACLが必要です。そのために使われるのがロールになります。自分だけのデータであればACLに自分を指定すれば良いだけですが、複数人で共有したいといった場合にはロールを利用します。
今回はSwiftでロールを利用する方法を解説します。
ロールの作成
Swiftからロールを作成するのは以下のコードでできます。
let role = NCMBRole.init(name: "Member") role?.saveInBackground({error in if (error != nil) { } else { print("ロール作成") } })
ロールを検索する
ロールにユーザを追加する場合には、まずロールを検索する必要があります。
let query = NCMBQuery.init(className: "role") query?.whereKey("roleName", equalTo: "Member") query?.findObjectsInBackground({(data, error) in if (error != nil) { print(error) } else { // 検索成功 let role = data?[0] as! NCMBRole } })
既存のロールにユーザを追加する
あるユーザ(今回は自分。変数は user)を既存のロール(role)に追加する際には以下のようにします。
role.add(user) role.saveInBackground({(error) in if (error != nil) { print(error) } else { print("追加完了") } })
新しいロールにユーザを追加する
裏技、という訳ではありませんが新しいロールにユーザを追加する場合はロールを検索せずに同時に処理できます。すでに同名のロールが存在している場合はエラーになるので注意してください。
let role = NCMBRole.init(name: "Member") role.add(user) role.saveInBackground({(error) in if (error != nil) { print(error) } else { print("追加完了") } })
まとめ
ロールはより実用的な権限管理を行う上で欠かせない機能です。動的に作成することも多いでしょう。今回の書き方を参考に実装してください。