Sha256: 7d703eb4ff8c869dcab53167c605b4530b12f2706efb50e65228da7eedc95cb4

Contents?: true

Size: 485 Bytes

Versions: 4

Compression:

Stored size: 485 Bytes

Contents

module SolidusSubscriptions
  class Ability
    include CanCan::Ability

    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
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
solidus_subscriptions-alpha-0.0.5 lib/solidus_subscriptions/ability.rb
solidus_subscriptions-alpha-0.0.3 lib/solidus_subscriptions/ability.rb
solidus_subscriptions-alpha-0.0.2 lib/solidus_subscriptions/ability.rb
solidus_subscriptions-alpha-0.0.1 lib/solidus_subscriptions/ability.rb