2017-10-24 3 views
0

filter hook을 내 Auth0 Delegated Administration Extension에 사용하고 있습니다.lucene 쿼리 필터가 작동하지 않습니다.

function(ctx, callback) { 
    // Get the company from the current user's metadata. 
    var company = ctx.request.user.app_metadata && ctx.request.user.app_metadata.company; 
    if (!company || !company.length) { 
    return callback(new Error('The current user is not part of any company.')); 
    } 

    // The GREEN company can see all users. 
    if (company === 'GREEN') { 
    return callback(); 
    } 
    // Return the lucene query. 
    return callback(null, 'app_metadata.company:"' + company + '"'); 
} 

사용자가 GREEN 인 사용자가 모든 사용자를 볼 수 있습니다. 그러나 회사가 RED 인 사용자가 로그인하면 회사가 RED 인 사용자를 볼 수 없습니다.

사용자가 로그인했을 때이를 작성해야하며 사용자는 회사 내의 사용자 만 액세스 할 수 있어야합니다. (GREEN 회사의 사용자 제외).

그러나 위의 코드는 예상 된 결과를 제공하지 않습니다. 무엇이 문제 일 수 있습니까?

답변

0

나는 결국이 해결책으로 끝났다.

사용자를 필터링하는 데 사용되는 검색 기능입니다. 두 파일 아래에서 변경해야했습니다.

fetchUsers 함수 client\actions\user.js

내보내기 (= 거짓 페이지 = 0으로 리셋 됨 = '')

내보내기 기능 fetchUsers 변경 function fetchUsers (search = '@ red.com', 재설정 = false,) 6,페이지 = 0)

AND client\containers\Users\Users.jsx

변경에

onReset 기능

onReset =() => {this.props.fetchUsers ('참); }

onReset =() => {this.props.fetchUsers ('@ red.com'TRUE); }

0

여전히 문제가 있습니까? 아니면 해결 되었습니까? 나는 문자 그대로 똑같은 문제를 겪고있다. Auth0와 함께 지원 티켓을 열었습니다. 내가 들었던 것을 알려 드리겠습니다. 당신이 시도하고 위임 내에서 그것을 실행하는 경우

"app_metadata.company:"RED :해야 반환 루씬 쿼리 - 나는 생각하지 않는다

는 검색 기능, 오히려 코드와 아무 잘못 프로그래머 관리자가 후크를 적용하지 않으면 쿼리가 작동하지 않습니다. 전자 메일 : "[email protected]"또는 이름 : "john doe"와 같은 독립 실행 형 사용자 속성을 검색 할 수 있지만 검색을 함께 문자열로 연결하려고하면 app_metadata.company: "테스트"또는/

+0

이 내용은 질문에 대한 의견으로 게시해야하며 대답이 아닙니다. Gillerton. – Neil

+0

@ Gillerton. 네. 나는 아직도이 문제가있다. Auth0에서 답을 얻을 때 나를 업데이트 해주십시오. – Bishan

+0

@Bishan - 오래 걸렸지 만 Auth0 지원 팀이 오늘 저에게 돌아 왔습니다. 그들은 사용자/앱 메타 데이터 검색을 제한하고 "일부 중단"으로 인해 사례별로 사용하도록 설정했습니다 ... 우리가 세입자에 대한 메타 데이터 검색을 다시 활성화 한 후에는 필터 고리가 정확히 작동합니다. 나는 그들에게 연락 할 것을 제안 할 것이다. – Gillertron

1

이것은 기본적으로 그들은 당신이 더 이상 app_metadata 필드의 속성을 검색하지 않는 User Search documentation page

에 약간의 경고 노트 관련이있을 수 있습니다 "user_metadata.company:"test, 그것은 작업 나던. 불행히도,이 변화는 단호하고 예고되지 않았습니다.

app_metadata 사본을 별도의 데이터베이스에 보관하고 lucene 구문을 MongoDB 쿼리로 변환하여 user_id:"<>" OR user_id:"<>" OR ... 체인으로 쿼리 할 수 ​​있도록 API를 변경해야했습니다.

하나의 경고가 있지만보다 긴 검색어는 전달할 수 없습니다. 이 숫자는 지금까지 문서화되지 않았고 경험적으로 얻은 것입니다.

또한 Auth0의 후크를 사용하여 새로운 사용자를 소셜로 그인하지 않기 때문에 데이터베이스에 추가 할 수는 없으며 Username-Password-Authentication 연결 인 경우에만 사용할 수 있습니다.

나는 이것이 가능한 솔루션과 함께 작동하지 않는 이유에 대한 설명을하기를 바랍니다.
내가 너라면, 우리가 현재하고있는 Auth0에 대한 대안을 찾을 것입니다.

+0

답변 해 주셔서 감사합니다. 이것은 나를 많이 도왔다. – Bishan