Parse platform 使用解析云代码强制执行数据完整性
我试图在Parse Cloud Code(一个事务授权代码)中创建一个字段,该字段一旦由云代码创建,用户(或除管理员以外的任何人)都无法更改。文件表明这是可能的。我真的需要一些关于如何实现这样一个字段的指针。解析下面的引用Parse platform 使用解析云代码强制执行数据完整性,parse-platform,Parse Platform,我试图在Parse Cloud Code(一个事务授权代码)中创建一个字段,该字段一旦由云代码创建,用户(或除管理员以外的任何人)都无法更改。文件表明这是可能的。我真的需要一些关于如何实现这样一个字段的指针。解析下面的引用 不允许用户直接更改计算字段 Parse.com博客上描述了您想要什么,这是一篇关于 这是他们样本的副本: Parse.Cloud.beforeSave(Parse.User, function(request, response) { for (dirtyKey in
- 不允许用户直接更改计算字段
- Parse.com博客上描述了您想要什么,这是一篇关于
这是他们样本的副本:
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();
});
在您的情况下,您希望对用户进行额外检查,以查看他们是否处于管理员角色
您可能还希望检查是否使用了主密钥,如所示
以下是完整查询的外观,以供参考:
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