Class: SolidusSubscriptions::Ability

Inherits:
Object
  • Object
show all
Includes:
CanCan::Ability
Defined in:
lib/solidus_subscriptions/ability.rb

Instance Method Summary collapse

Constructor Details

#initialize(user) ⇒ Ability

Returns a new instance of Ability.



5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/solidus_subscriptions/ability.rb', line 5

def initialize(user)
  alias_action :create, :read, :update, :destroy, to: :crud

  if user.has_spree_role?('admin')
    can(:manage, LineItem)
    can(:manage, Subscription)
  else
    can([:crud, :skip, :cancel], Subscription, user_id: user.id)
    can(:crud, LineItem) do |li, order|
      li.order.user == user || li.order == order
    end
  end
end