2014-02-17 31 views

回答

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 
+0

这是整理出来! – Fattie