사용자가 특정 역할 (vendor
)로 로그인 한 경우 사용자는 자신의 저장소에서 만든 항목 만 볼 수 있습니다. 다른 공급 업체의 제품을 볼 수 없어야합니다.현재 로그인 한 사용자가 속한 제품 만 보도록 제한하려면 어떻게합니까?
그래서 (Devise, CanCan, Rolify를 사용하여) 내 승인에서이 작업을 수행하려고합니다.
이user ||= User.new # guest user (not logged in)
if user.has_role? :vendor
can :dashboard
can :manage, [Product, Vendor], :vendor_id => user.id
can :view, [Product], :vendor_id => user.id
end
하지만 .... 그와 많은 행운이 없었어요 ... 나는 무엇을 놓치고 :
나는이 시도?
내가 같은 컨트롤러 제품을 제한 할 수 있다는 것을 알고 편집 1 :
@product = current_user.products
하지만 그건 내가 무엇을 찾고 아니에요. 이 경우 공급 업체 (즉, 역할이 :vendor
인 사용자)는 매장에 추가 한 제품 만 볼 수 있어야하지만 다른 공급 업체가 추가하는 제품을 볼 수 없어야합니다. 하지만 구매자 (즉, 역할이 :buyer
인 사용자)는 모든 구매자의 모든 제품을 볼 수 있어야합니다 (관리자/등). 구매자는 가격 및 제품의 일부 다른 속성 등을 볼 수 없습니다.
이 모든 것을 어떻게 달성 할 수 있습니까?
'can : view' 대신에'can : read'라고 생각합니다. –