2012-06-03 2 views
0

(그가 접근을 소유 한 공용 또는 개인) 사용자가 볼 수 있습니다 인스턴스 만 즉 모든 사람에게 표시됩니다. 또는 개인 저장소이고 회원에게만 표시되는 경우목록은 다음과 같이 나는 <code>Repository</code> 모델이

사용자가 볼 수있는 리포지토리 만 검색하는 가장 좋은 방법은 무엇입니까?

논리는 공개이면 그냥 검색합니다. 비공개 인 경우 사용자가 회원 목록에 있는지 확인합니다.

나는 이걸 컨트롤러 Repository에서 확인하는 방법을 만들고 사용자가 액세스 권한이 있는지 확인해야한다고 생각합니다. 그러나 나는 그것을하는 가장 좋은 방법을 이해할 수 없다!

답변

2

쉬운 방법은 인증 라이브러리를 사용하는 것입니다. 모든 프로젝트에서 CanCan을 사용합니다.

깨끗하고 읽기 쉬운 방식으로 액세스 권한을 선언 할 수 있습니다.

can :read, Project, :active => true, :user_id => user.id 

그런 다음 승인을 확인하십시오. 이 행은 current_user가 프로젝트에 액세스 할 수있는 경우에만 링크를 표시합니다.

<%= link_to 'A project', @project if can? :read, @project %> 

자세한 정보는 cancan 's wiki를 참조하십시오.

관련 문제