2016-12-20 12 views
0

Мне нужно проверить свойство моих PFUser в триггерах beforeSave для каждого из моих классов, чтобы определить, разрешено ли этому пользователю редактировать часть данных, которую они пытаются отредактировать.Parse Server Access PFUser в BeforeSave Trigger

Например, если PFUser не-администратора пытается отредактировать или добавить в класс, им не разрешено, я хочу предотвратить это в триггере beforeSave. Я обращаюсь к редактируемым ключам с помощью dirtyKeys.

Parse-Server не поддерживает .currentUser(), как старый сервер Parse. Как я могу получить доступ к 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 

    } 
} 

});

ответ

0

Оказывается, ответ гораздо более очевиден, чем я ожидал, и был в документах, но я не обратил на это внимания, несмотря на мои поиски.

Поскольку Parse.User.current() не работает в Parse Server, замена просто request.user. Я смог легко получить доступ ко всем данным, которые мне нужны, и мне хорошо.

var user = request.user; // request.user заменяет Parse.User.current()