2012-03-10 1 views
1

보기 사용자의 권한에 따라 메뉴를 동적으로 변경하고 싶습니다. superadmin 사용자가 일반 Resource 작업 (색인, 표시, 업데이트 등)에 액세스 할 수있게하고 싶습니다. 따라서 관리자가 메뉴 항목을 클릭하면 해당 자원의 색인으로 이동합니다. 나는 일반 관리자를 특정 쇼 페이지 만보기로 제한하고 싶다.Active Admin의 메뉴 항목을 표시합니다.

에게 superAdmin의 메뉴 경로는 다음과 같습니다/관리/자원
일반 관리자의 메뉴 경로는 다음과 같습니다/관리/자원/ID 나 또한 수직 관리자 액세스를 제한하려는

인덱스보기 또는 액세스 권한이없는 다른 리소스에 액세스 할 수 있습니다. 나는이 두 가지를 모두 달성 할 수 있었지만 아직 특정 쇼 페이지에 메뉴 항목을 매핑 할 수 있어야합니다. 나는 커스텀 페이지와 뷰를 생성 할 수 있다는 것을 알고 있지만, 쇼에 대한 커스텀 DSL을 공유하고 superadmin과 일반 관리자 사이의 페이지를 편집하고 싶습니다.

누구나 이런 일이 발생하는 방법을 알고 있습니다.

답변

1

좋아, 그래서 내가 원하는 것을 얻을 수있는 방법을 찾았습니다. 나는 내가 원하는 것을 정확히 수행 할 지 확신하지 못한다. (의미, 특정 리소스에 매핑 된 사용자 지정 메뉴 항목을 만드는 것이 좋을 것입니다)

방금 ​​특정 show 페이지로 리디렉션하기 위해 인덱스 컨트롤러 작업을 덮어 썼습니다. 최고 관리자가 원래 Store 자원에 액세스해야하기 때문에 다음과 같이 별칭을 지정해야했습니다.

ActiveAdmin.register Store, :as => 'My Store' do 
    menu :if => proc{ !current_user.is_admin? }, 
     :label => 'My Store' 

    actions :show, :edit, :update 

    controller do 
    def index 
     redirect_to(admin_my_store_url(current_user.store)) 
    end 
    end 
end