■Parse.Cloud.useMasterKeyを呼び出すことで特権ユーザー権限になれる
Cloud Code上でACLによるアクセス制限を無視して現在のrequest.userとは関係なしにデータを操作したいということが多々あるかと思います。そのような場合は以下のようにリクエスト処理の先頭でParse.Cloud.useMasterKeyメソッドを呼び出してください。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Parse.Cloud.beforeSave(Parse.Role, function(request, response) { | |
Parse.Cloud.useMasterKey(); | |
var role = request.object; | |
if (user_js.isAdministratorRole(role)) { | |
if (role.isNew()) { | |
// Administrator role creation | |
// Set ACL on create | |
var administratorRoleACL = new Parse.ACL(); | |
administratorRoleACL.setPublicReadAccess(false); | |
administratorRoleACL.setPublicWriteAccess(false); | |
administratorRoleACL.setRoleReadAccess(user_js.kAdministratorRoleName, true); | |
administratorRoleACL.setRoleWriteAccess(user_js.kAdministratorRoleName, true); | |
role.setACL(administratorRoleACL); | |
response.success(); | |
} else { | |
// Administrator role update | |
// Do nothing | |
response.success(); | |
} | |
} | |
}); |
useMasterKeyの効果は呼び出された瞬間からリクエストが終了するまで有効です。