2010-11-22 4 views
3

우리는 멀티 테넌트 (많은 사용자가 모두 Basecamp와 비슷한 자체 데이터에 액세스하는) 애플리케이션을 보유하고 있습니다.레일즈의 특정 도메인에 데이터 보안하기

질문 : 사용자가 자신의 계정 데이터 만 볼 수 있도록하기 위해 레일스에서 ​​가장 간단하고 쉬운 방법은 무엇입니까? 모든 단일 쿼리로 이동하고 검사하는 경우입니까?

답변

3

그렇게 만드는 방법 :

  • 사용 하위 도메인, 그래서 그 customer.domain.com을 .... 그런 다음 응용 프로그램 컨트롤러, 하위 도메인을 찾아서 설정됩니다 필터 전에이 @ ... 오히려 Quote.find 이상 (PARAMS [: ID]) 그래서

: 당신이 customer.quotes.find ([ID] PARAMS) @ 말할 수 있도록 고객 변수는

  • 항상 고객으로부터 데이터를 얻을 , 예, 멀티 테넌트 데이터베이스에서 모든 쿼리를 확인해야합니다.

  • 0

    하위 도메인을 사용할 수 있지만 인증 방법에 따라 current_user도 사용할 수 있습니다. 설명했다.

    로그인했는데 현재 current_user가 있습니다. 사용자는 많은 게시물을 가지고 있습니다. 그래서 지금 내 모든 게시물을 찾고 싶다면 current_user.posts.all 또는 current_user.posts.find()를 수행해야합니다.

    쿠키가 작동하지 않으므로 "경로 숨기기"에 의존하지 마십시오. 권한 스키마를 손상시키지 않았는지 점검하기위한 테스트를 작성하십시오.

    관련 문제