Class: AccessContext::Permission

Inherits:
Object
  • Object
show all
Defined in:
lib/access_context/permission.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, &block) ⇒ Permission



24
25
26
27
# File 'lib/access_context/permission.rb', line 24

def initialize(name, &block)
  @name = name.to_sym
  instance_eval(&block)
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



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

def name
  @name
end

Class Method Details

.[](name) ⇒ Object



9
10
11
# File 'lib/access_context/permission.rb', line 9

def [](name)
  permissions[name.to_sym]
end

.allObject



13
14
15
# File 'lib/access_context/permission.rb', line 13

def all
  permissions
end

.grant(name, &block) ⇒ Object



5
6
7
# File 'lib/access_context/permission.rb', line 5

def grant(name, &block)
  permissions[name.to_sym] = new(name, &block)
end

.permissionsObject



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

def permissions
  @permissions ||= {}
end

Instance Method Details

#context(type, name, targets = []) ⇒ Object



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

def context(type, name, targets=[])
  ([targets] || []).flatten.each do |target|
    contexts << AccessContext.new(type, name, target)
  end
end

#contextsObject



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

def contexts
  @contexts ||= []
end

#controller(name, actions = []) ⇒ Object



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

def controller(name, actions=[])
  context(:controller, name, actions)
end

#job(name, actions = []) ⇒ Object



53
54
55
# File 'lib/access_context/permission.rb', line 53

def job(name, actions=[])
  context(:job, name, actions)
end

#permit?(context) ⇒ Boolean



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

def permit?(context)
  contexts.any? do |c|
    c == context
  end
end

#service(name, actions = []) ⇒ Object



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

def service(name, actions=[])
  context(:service, name, actions)
end

#view(name, elements = []) ⇒ Object



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

def view(name, elements=[])
  context(:view, name, elements)
end