Class: Lockdown::Permission

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

Instance Attribute Summary (collapse)

Instance Method Summary (collapse)

Constructor Details

- (Permission) initialize(name)

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

- (Object) name

Name of permission



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

def name
  @name
end

- (Object) resources (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

- (Object) controllers



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

def controllers
  @resources
end

- (Object) is_protected



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

def is_protected
  @isprotected  = true
  @ispublic     = false 
end

- (Object) is_public



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

def is_public
  @ispublic     = true
  @isprotected  = false
end

- (Boolean) protected?

Returns:

  • (Boolean)


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

def protected?
  @isprotected
end

- (Boolean) public?

Returns:

  • (Boolean)


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

def public?
  @ispublic
end

- (Object) regex_pattern

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

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

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