Sha256: 67245410c28500b4e02b218b132056bf222ca596f4f1ab524deb60b39f72f9fc

Contents?: true

Size: 1023 Bytes

Versions: 1

Compression:

Stored size: 1023 Bytes

Contents

class Ability
  include CanCan::Ability

  def initialize(user)
    self.clear_aliased_actions

    # override cancan default aliasing (we don't want to differentiate between read and index)
    alias_action :edit, :to => :update
    alias_action :new, :to => :create
    alias_action :show, :to => :read

    user ||= User.new
    if user.has_role? 'admin'
      can :manage, :all
    else
      #############################
      can :read, User do |resource|
        resource == user
      end
      can :update, User do |resource|
        resource == user
      end
      can :create, User
      #############################
      can :read, Order do |order|
        order.user == user
      end
      can :update, Order do |order|
        order.user == user
      end
      can :create, Order
      #############################
      can :read, Product
      can :index, Product
      #############################
      can :read, Taxon
      can :index, Taxon
      #############################
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
spree_auth-0.30.0.beta1 app/models/ability.rb