Skip to content

Instantly share code, notes, and snippets.

@schof
Created October 29, 2010 03:15
Show Gist options
  • Save schof/652826 to your computer and use it in GitHub Desktop.
Save schof/652826 to your computer and use it in GitHub Desktop.
Add custom cancan abilities on top of Spree
class AbilityDecorator
include CanCan::Ability
def initialize(user)
#############################
can :destroy, LineItem do |item|
item.order.user == user
end
#############################
can :read, Artwork do |artwork|
artwork.order && artwork.order.user == user
end
can :update, Artwork do |artwork|
artwork.order && artwork.order.user == user
end
#############################
can :read, ArtworkRevision do |revision|
revision.order && revision.order.user == user
end
can :update, ArtworkRevision do |revision|
revision.order && revision.order.user == user
end
#############################
end
end
Ability.register_ability(AbilityDecorator)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment