2016-12-20 5 views
0

각 클래스에 대해 내 PFUser의 beforeSave 트리거의 속성을 검사하여 해당 사용자가 편집하려는 데이터를 편집 할 수 있는지 확인해야합니다.구문 분석 서버 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 

    } 
} 

});

답변

0

답변이 예상보다 훨씬 분명하고 문서에 있지만 내 검색에도 불구하고 간과했다.

Parse.User.current()가 Parse Server에서 작동하지 않으므로 대체는 간단히 request.user입니다. 나는 이것으로부터 필요한 모든 데이터에 쉽게 접근 할 수 있었고 갈 수 있었다.

var user = request.user; // request.user가 Parse.User.current()를 대체합니다.