2012-12-31 2 views
0

내가 속한 앱은 조직에 속한 사용자를 중심으로하고 있으며 해당 조직의 리소스에만 액세스 할 수 있습니다. 그 정도면 괜찮아요.레일 수퍼 유저 리소스 컨텍스트

시스템에는 조직 외부의 사용자가 있으며 시스템 내의 모든 것을 볼 수 있습니다. 이러한 사용자 중 한 명이 로그인하면 보려는 조직의 목록이 제공됩니다. 하나를 선택하면 일반 사용자로 로그인 한 것처럼 시스템의보기를 제공하지만 수퍼 유저 권한은 유지해야합니다.

특정 조직이 선택되었고 모든 경로에 대해 중첩 된 리소스를 가질 필요가 없다는 것을 시스템에 알릴 수있는 좋은 방법이 있습니까?

예를 들어 수퍼 유저로 로그인하고 organisationA를 보려고합니다. 나는이 일을 어떤 좋은 방법이 있나요, 조직을 선택 할 수 있도록하려면 단순히

/organisations/1/subjects 

로 이동하는 것보다

/subjects 

을 오히려 갈?

답변

0

URL을 통해 컨텍스트를 전달하지 않으면 선택한 조직을 세션에 저장할 수 있습니다. 세션 접근법의 문제점은 세션에 저장된 데이터에 의존하기 때문에 이러한 페이지에 직접 링크 할 수있는 능력을 상실한다는 것입니다.

+0

물론 링크가 변경되지 않았다면 괜찮겠습니까? 세션은 로그인 한 사용자가 수퍼 유저 인 경우에만 해당 컨텍스트를 저장합니다. 다른 모든 사용자는 실제로 조직에 속해 있으므로 세션은 필요하지 않습니다. 링크가 누구에게 로그인했는지에 상관없이 링크에/피사체가 있다면 링크는 여전히/피사체 일뿐입니다. 그런 다음 shine admin으로 로그인하면 세션의 주체가로드되지만 일반 사용자가 로그인하면 자체 조직의 주체가로드됩니다. – PaReeOhNos

+0

세션을 가지고 작업했습니다. 따 :) – PaReeOhNos

관련 문제