1
我试图创建,一旦通过云代码创建云解析代码(交易授权码)的字段,不能由用户(或任何人,除非管理员)来改变。文件表明这是可能的。我真的可以用一些关于如何实现这样的领域的指针。下面解析参考。使用解析云代码来执行数据的完整性
- 不要让用户直接更改计算字段
我试图创建,一旦通过云代码创建云解析代码(交易授权码)的字段,不能由用户(或任何人,除非管理员)来改变。文件表明这是可能的。我真的可以用一些关于如何实现这样的领域的指针。下面解析参考。使用解析云代码来执行数据的完整性
你想要什么就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
这是整理出来! – Fattie