在PreSave触发器中解析服务器访问PFUser

时间:2016-12-20 01:16:07

标签: parse-platform triggers cloud-code parse-server pfuser

我需要在每个类的beforeSave触发器中检查我的PFUser的属性,以确定是否允许该用户编辑他们试图编辑的数据。

例如,如果非管理员PFUser正在尝试编辑或添加到他们不应该被允许的类,我想在beforeSave触发器中阻止它。我使用dirtyKeys访问正在编辑的键。

Parse-Server不支持像旧的Parse服务器那样的.currentUser()。 如何访问发出请求的PFUser?除了通过会话令牌,还有办法吗?

Parse.Cloud.beforeSave("Class", function(request, response) {

//Get the keys that're being edited and iterate through them
var dirtyKeys = request.object.dirtyKeys();
for (var i = 0; i < dirtyKeys.length; ++i) {
  var dirtyKey = dirtyKeys[i];

  //Allow or don't allow editing of each key
  if (userObject.get("<KEY>")) {
    console.log('Class before save trigger IS key');
    //ADD CLASS SPECIFIC FUNCTIONALITY HERE

  } else {
    console.log('Class before save trigger NOT key');
    //ADD CLASS SPECIFIC FUNCTIONALITY HERE

  }
}

});

1 个答案:

答案 0 :(得分:0)

事实证明,答案比我预期的要明显得多,并且在文档中,但我忽略了它,尽管我的搜索。

由于Parse.User.current()在Parse Server中不起作用,因此替换只是request.user。我能够轻松访问我需要的所有数据并且很高兴。

var user = request.user; // request.user替换Parse.User.current()