2010-12-14 5 views
0

인증을받은 사용자 범위를 특정 네임 스페이스로 제한하고 싶습니다. 그러나 그것들은 동적 일 것입니다 (즉, 명명 된 경로가 아님). 예 :devise current_user 대 user_session

/rails/redteam/ 
/rails/blueteam/ 
/rails/greenteam/ 

혹은 단순히 :

다음
/rails/ 
...or... 
/

우리가 그들의 '팀'을 알고있는 경우는 어떻게 든 라우팅에 가정 수 없습니다?

어떻게 설정하고 처리하는 것이 가장 좋은 방법이며 을 안전하게 처리 하시겠습니까? 내가 user_session에 팀 이름을 저장해야합니까? 또는 current_user에 그룹에 대한 쿼리를 실행하고 before_filter에서 알려진 그룹과 일치하는지 확인하십시오.

경로 자체는 어떻게됩니까? 기본적으로 영광스런 ID, 아마도 퍼멀 링크일까요? 모르겠어. "Rails way?"

btw- 나는 CanCandecl_auth과 같은 승인 보석을 알고 있지만, 가능하다면, 나는 그것이 이미 충분히 분명하지 않았다면, 나는 새마승 같아서, 가능한 한 복잡하지 않도록 노력하고 있습니다.

답변

2

내가, 캉캉 및 decl_auth 같은 인증 보석을 알고 있지만, 자신의 복잡성을 피하기 위해 노력하고있어

가능한 당신이 많은 약을 배울 수있는 시간을내어 더 낫다 (또는 다른 경우 또는 둘 다) 자신의 솔루션, IMO를 시도하는 것보다. 궁극적으로 요구 사항이 변함에 따라 복잡해지고 복잡한 접근 방식이 아니라면 문제가 발생합니다.

+1

내가 두려워했던 것 ... 나는 정말로 사용자가 다른 팀 데이터를 수정 (또는 보면서) 못하도록하는 쉬운 방법을 찾고 있습니다. 내가보기에, 또는 최소한 승인 보석에 대해 이해하는 것은 특정 * 역할 * (관리자, 사용자, 중재자 등)에 더 많이 적응하고 액세스 또는 * 소유권에 대해서는 그다지 중요하지 않은 것으로 보입니다. 잘못된 가정을하고 있습니까? 그렇다면 아마 보석 중 하나를 추천 할 수 있습니다. – Meltemi

+0

cancan은 능력에 관한 모든 것입니다. "나는이 개체를 업데이트 할 수 있습니까?" 그 능력을 구현하는 방법은 당신에게 달려 있습니다. –

+0

'declarative_authorization' 만 사용했습니다. CanCan은 요즘 인기가 있으며 평판 좋게 사용하기 쉽습니다. – zetetic

관련 문제