Class: Spree::PermissionSets::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/spree/permission_sets/base.rb

Overview

This is the base class used for crafting permission sets.

This is used by RoleConfiguration when adding custom behavior to Ability. See one of the subclasses for example structure such as UserDisplay

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(ability) ⇒ Base

Returns a new instance of Base.

Parameters:

  • ability (CanCan::Ability)

    The ability that will be extended with the current permission set. The ability passed in must respond to #user



16
17
18
# File 'lib/spree/permission_sets/base.rb', line 16

def initialize(ability)
  @ability = ability
end

Class Method Details

.categoryObject

Provide the permission set category in the form of a :symbol. Must be overridden by subclasses.

Raises:

  • (NotImplementedError)


34
35
36
# File 'lib/spree/permission_sets/base.rb', line 34

def self.category
  raise NotImplementedError, "Subclass #{name} must define a category using `self.category :symbol`"
end

.privilegeObject

Provide the permission set privilege in the form of a :symbol. Must be overridden by subclasses.

Raises:

  • (NotImplementedError)


28
29
30
# File 'lib/spree/permission_sets/base.rb', line 28

def self.privilege
  raise NotImplementedError, "Subclass #{name} must define a privilege using `self.privilege :symbol`"
end

Instance Method Details

#activate!Object

Activate permissions on the ability. Put your can and cannot statements here. Must be overridden by subclasses

Raises:

  • (NotImplementedError)


22
23
24
# File 'lib/spree/permission_sets/base.rb', line 22

def activate!
  raise NotImplementedError.new
end