2014-02-17 29 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