Class: Lockdown::Permission

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name) ⇒ Permission

Returns a new instance of Permission.

Parameters:

  • name (String, Symbol)

    permission reference.



11
12
13
14
15
16
# File 'lib/lockdown/permission.rb', line 11

def initialize(name)
  @name       = name.to_s
  @resources  = []
  @ispublic     = false
  @isprotected  = false
end

Instance Attribute Details

#nameObject

Name of permission



6
7
8
# File 'lib/lockdown/permission.rb', line 6

def name
  @name
end

#resourcesObject (readonly)

Array of resource objects that define the access rights for this permission



8
9
10
# File 'lib/lockdown/permission.rb', line 8

def resources
  @resources
end

Instance Method Details

#controllersObject



29
30
31
# File 'lib/lockdown/permission.rb', line 29

def controllers
  @resources
end

#is_protectedObject



42
43
44
45
# File 'lib/lockdown/permission.rb', line 42

def is_protected
  @isprotected  = true
  @ispublic     = false 
end

#is_publicObject



33
34
35
36
# File 'lib/lockdown/permission.rb', line 33

def is_public
  @ispublic     = true
  @isprotected  = false
end

#protected?Boolean

Returns:

  • (Boolean)


47
48
49
# File 'lib/lockdown/permission.rb', line 47

def protected?
  @isprotected
end

#public?Boolean

Returns:

  • (Boolean)


38
39
40
# File 'lib/lockdown/permission.rb', line 38

def public?
  @ispublic
end

#regex_patternObject

Returns String representing all resources defining this permission.

Returns:

  • String representing all resources defining this permission



52
53
54
# File 'lib/lockdown/permission.rb', line 52

def regex_pattern
  resources.collect{|r| "(#{r.regex_pattern})"}.join("|")
end

#resource(name, &block) ⇒ Object Also known as: controller

Returns new resource.

Parameters:

  • name (String, Symbol)

    resource reference.

Returns:

  • new resource



20
21
22
23
24
25
# File 'lib/lockdown/permission.rb', line 20

def resource(name, &block)
  resource =  Lockdown::Resource.new(name)
  resource.instance_eval(&block) if block_given?
  @resources << resource
  resource
end