2016-10-18 3 views
0

restrictToOwner과 같은 후크를 다른 후크에 사용할 수 있습니까? 예를 들어 사용자가 일반적으로 자신의 정보를 업데이트 할 수있게하려면 다른 사용자의 특정 속성에 대한 액세스 권한을 부여하기를 원합니다. 특정 검색어 매개 변수가있는 경우 사용자에 대한 설명을 말하고 사용자가 전달하기를 원합니다. 그렇지 않으면 restrictToOwner 후크를 사용하고 싶습니다. 물론 필자는 자신 만의 restrictToOwner 후크를 작성할 수 있지만 가능한 경우 기존의 것을 사용하고 싶습니다 (?). 아래의 코드가 작동하지 않습니다,하지만 난 뭔가를 원하는 :후크를 서로 결합하십시오 (후크 후크)

module.exports = function(options) { 
    return function(hook) { 
    if (typeof hook.data.comment !== 'undefined') 
     return hook; 
    return auth.restrictToOwner({ ownerField: '_id' }); 
    }; 
}; 

내가 요청이 외부 통화 인 경우에만 후크를 실행하고 싶은 또 다른 비슷한 일. 내 내부 스크립트에는 무제한 액세스 권한이 있어야합니다. 다음과 같음 :

// user/hooks/index.js 
exports.before = { 
    patch: [ 
    globalHooks.ifExternal(auth.restrictToOwner({ ownerField: '_id' })) 
    ] 
}; 
// hooks/index.js 
exports.ifExternal = function(func) { 
    return function(hook) { 
    if (typeof hook.params.provider === 'undefined') //? if internal 
     return hook; 
    return func; 
    }; 
}; 

미리 감사드립니다.

답변

1

auth.restrictToOwner은 후크 개체를 사용하는 다른 함수를 반환하는 함수입니다.

return auth.restrictToOwner({ ownerField: '_id' })(hook); 

을 두 번째 질문에 :

if (!hook.params.provider) { 
    // internal only stuff here. 
} 
+0

지금은 모두 가져가 처리되지 않은 약속을 거부'오류를 후크 :

그래서 당신은 다음과 같이 호출해야하는 속성을 읽을 수 없습니다 '수' 정의되지 않은'. 디버깅은 오류가 발생한 위치를 찾는 데 도움이되지 않았습니다. 'feathers-socket-commons : methods 사용자 호출 오류 :: patch + 18ms {[TypeError : 정의되지 않은 'get'속성을 읽을 수 없습니다.]'생각 났니? – tan