如果用戶使用特定角色登錄 - 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:read'而不是'can:view' – 2013-03-14 12:58:27