Parse platform 使用解析云代码强制执行数据完整性

Parse platform 使用解析云代码强制执行数据完整性,parse-platform,Parse Platform,我试图在Parse Cloud Code(一个事务授权代码)中创建一个字段,该字段一旦由云代码创建,用户(或除管理员以外的任何人)都无法更改。文件表明这是可能的。我真的需要一些关于如何实现这样一个字段的指针。解析下面的引用 不允许用户直接更改计算字段 Parse.com博客上描述了您想要什么,这是一篇关于 这是他们样本的副本: Parse.Cloud.beforeSave(Parse.User, function(request, response) { for (dirtyKey in

我试图在Parse Cloud Code(一个事务授权代码)中创建一个字段,该字段一旦由云代码创建,用户(或除管理员以外的任何人)都无法更改。文件表明这是可能的。我真的需要一些关于如何实现这样一个字段的指针。解析下面的引用

  • 不允许用户直接更改计算字段

    • 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