Module: Authority

Defined in:
lib/authority.rb,
lib/authority/railtie.rb,
lib/authority/version.rb,
lib/authority/abilities.rb,
lib/authority/controller.rb,
lib/authority/authorizer.rb,
lib/authority/configuration.rb,
lib/authority/user_abilities.rb,
lib/generators/authority/install_generator.rb

Defined Under Namespace

Modules: Abilities, Controller, Generators, UserAbilities Classes: Authorizer, Configuration, NoAuthorizerError, Railtie, SecurityViolation

Constant Summary

VERSION =
"1.0.0"

Class Attribute Summary (collapse)

Class Method Summary (collapse)

Class Attribute Details

+ (Object) configuration

Returns the value of attribute configuration



40
41
42
# File 'lib/authority.rb', line 40

def configuration
  @configuration
end

Class Method Details

+ (Hash) abilities

NOTE: once this method is called, the library has started meta programming and abilities should no longer be modified

Returns:

  • (Hash)

    list of abilities, mapping verbs and adjectives, like :create => 'creatable'



12
13
14
# File 'lib/authority.rb', line 12

def self.abilities
  configuration.abilities.freeze
end

+ (Array) adjectives

Values from adjectives method

Returns:

  • (Array)

    values from adjectives method



22
23
24
# File 'lib/authority.rb', line 22

def self.adjectives
  abilities.values
end

+ (Object) configure {|configuration| ... }

Yields:



43
44
45
46
47
48
49
# File 'lib/authority.rb', line 43

def self.configure
  self.configuration ||= Configuration.new
  yield(configuration) if block_given?
  require_authority_internals!

  configuration
end

+ (Model) enforce(action, resource, user)

Resource instance

Parameters:

  • action (Symbol)
  • resource (Model)

    instance

  • user (User)

    instance

Returns:

  • (Model)

    resource instance

Raises:



31
32
33
34
35
36
37
# File 'lib/authority.rb', line 31

def self.enforce(action, resource, user)
  action_authorized = user.send("can_#{action}?", resource)
  unless action_authorized
    raise SecurityViolation.new(user, action, resource)
  end
  resource
end

+ (Array) verbs

Keys from adjectives method

Returns:

  • (Array)

    keys from adjectives method



17
18
19
# File 'lib/authority.rb', line 17

def self.verbs
  abilities.keys
end