Class: AccessContext

Inherits:
Object
  • Object
show all
Defined in:
lib/access_context.rb,
lib/access_context/role.rb,
lib/access_context/version.rb,
lib/access_context/permission.rb,
lib/access_context/configuration.rb

Defined Under Namespace

Modules: Configuration Classes: Error, Permission, Role

Constant Summary collapse

VERSION =
"1.0.0"

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(type, name, target) ⇒ AccessContext

Returns a new instance of AccessContext.



39
40
41
42
43
# File 'lib/access_context.rb', line 39

def initialize(type, name, target)
  @type = type.to_sym
  @name = name.to_sym
  @target = target.to_sym
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



37
38
39
# File 'lib/access_context.rb', line 37

def name
  @name
end

#targetObject (readonly)

Returns the value of attribute target.



37
38
39
# File 'lib/access_context.rb', line 37

def target
  @target
end

#typeObject (readonly)

Returns the value of attribute type.



37
38
39
# File 'lib/access_context.rb', line 37

def type
  @type
end

Class Method Details

.config(&block) ⇒ Object



15
16
17
# File 'lib/access_context.rb', line 15

def config(&block)
  Configuration.module_eval(&block)
end

.controller(name, target) ⇒ Object



19
20
21
# File 'lib/access_context.rb', line 19

def controller(name, target)
  AccessContext.new(:controller, name, target)
end

.job(name, target) ⇒ Object



31
32
33
# File 'lib/access_context.rb', line 31

def job(name, target)
  AccessContext.new(:job, name, target)
end

.service(name, target) ⇒ Object



23
24
25
# File 'lib/access_context.rb', line 23

def service(name, target)
  AccessContext.new(:service, name, target)
end

.view(name, target) ⇒ Object



27
28
29
# File 'lib/access_context.rb', line 27

def view(name, target)
  AccessContext.new(:view, name, target)
end

Instance Method Details

#==(context) ⇒ Object



55
56
57
58
59
# File 'lib/access_context.rb', line 55

def ==(context)
  type == context.type &&
  name == context.name &&
  target == context.target
end

#permit?(user) ⇒ Boolean

Returns:

  • (Boolean)


45
46
47
# File 'lib/access_context.rb', line 45

def permit?(user)
  permit_role?(user.role)
end

#permit_role?(role) ⇒ Boolean

Returns:

  • (Boolean)


49
50
51
52
53
# File 'lib/access_context.rb', line 49

def permit_role?(role)
  AccessContext::Role[role].permissions.any? do |permission|
    permission.permit?(self)
  end
end