2013-10-10 31 views
2

我有一個Angular服務,它接受一個roleId和userId並將用戶分配給該角色,並在該用戶的指針中創建一個指針。Parse.com:獲取UserCannotBeAlteredWithoutSessionError

app.service('CRUD', function() { 
    this.addUserToRole = function (roleId, userId) { 
     // first we have to find the role we're adding to 
     var query = new Parse.Query(Parse.Role); 
     return query.get(roleId, { 
      success: function (role) { 
       // then add the user to it 
       var Database = Parse.Object.extend("User"); 
       var query = new Parse.Query(Database); 
       console.log(role); 
       return query.get(userId, { 
        success: function (user) { 
         console.log(user); 
         role.getUsers().add(user); 
         role.save(); 

         // now we need to tell the user that he has this role 
         console.log(user); 
         user.attributes.role.add(role); 
         user.save(); 
         return user; 
        }, 
        error: function (err) { 
         return err; 
        } 
       }); 
      }, 
      error: function (err) { 
       console.log(err); 
      } 
     }); 
    } 
}); 

我對user.save();

越來越{"code":206,"error":"Parse::UserCannotBeAlteredWithoutSessionError"}經過一番研究,我來到this網站。他使用此代碼段爲JS SDK例如:

Parse.Cloud.run('modifyUser', { username: 'userA' }, { 
    success: function(status) { 
    // the user was updated successfully 
    }, 
    error: function(error) { 
    // error 
    } 
}); 

,並提到了一些關於useMasterKey()功能。

我還不確定如何解決這個錯誤。

回答

5

添加

Parse.Cloud.useMasterKey(); 

在你的函數的開頭。