我正在尝试在云代码创建的Parse Cloud Code(事务授权代码)中创建一个字段,用户(或除Admin之外的任何人)都无法更改。文件表明这是可能的。我真的可以使用一些关于如何实现这样一个领域的指针。解析下面的参考文献。
答案 0 :(得分:3)
Parse.com博客中描述了您想要的内容,该博客是关于dirtyKeys。
的条目以下是他们样本的副本:
Parse.Cloud.beforeSave(Parse.User, function(request, response) {
for (dirtyKey in request.object.dirtyKeys()) {
if (dirtyKey === "username" || dirtyKey === "email") {
response.error("User is not allowed to modify " + dirtyKey);
return;
}
}
response.success();
});
在您的情况下,您希望对用户进行额外检查,以确定他们是否处于管理员角色。
根据this documentation,您可能还想检查是否使用了主密钥。
供参考,以下是完整查询的外观:
Parse.Cloud.beforeSave("mySecureObject", function(request, response) {
var isAdminQuery = (new Parse.Query(Parse.Role));
isAdminQuery.equalTo("name", "Administrator");
isAdminQuery.equalTo("users", request.user);
isAdminQuery.first().then(function(adminRole) {
if (adminRole || request.master) {
// admin user or master key set, let 'em do what they want
} else {
for (dirtyKey in request.object.dirtyKeys()) {
if (dirtyKey === "firstCalculatedField" || dirtyKey === "otherCalculatedField") {
response.error("User is not allowed to modify " + dirtyKey);
return;
}
}
}
response.success();
}); // end isAdminQuery.first()
}); // end beforeSave