Class: NonGrata::Authorization
- Inherits:
-
Object
- Object
- NonGrata::Authorization
- Defined in:
- lib/non_grata/authorization.rb
Class Method Summary collapse
- .create(&block) ⇒ Object
- .method_missing(sym, *args, &block) ⇒ Object
- .privilege(resource, action) ⇒ Object
- .privileges ⇒ Object
- .role(name, &block) ⇒ Object
- .roles(role_name = nil) ⇒ Object
- .scheme(name, options = nil, &block) ⇒ Object
-
.schemes(name = nil) ⇒ Object
returns either an array of all schemes or returns a specific scheme by name Ex: Authorization.schemes <- returns array of all schemes Authorization.schemes(:main) <- returns the scheme named ‘main’.
Class Method Details
.create(&block) ⇒ Object
3 4 5 6 |
# File 'lib/non_grata/authorization.rb', line 3 def self.create(&block) @schemes = [Scheme.new(:main)] instance_eval(&block) end |
.method_missing(sym, *args, &block) ⇒ Object
47 48 49 50 |
# File 'lib/non_grata/authorization.rb', line 47 def self.method_missing(sym, *args, &block) return schemes.find{|i| i.name = sym.to_s.sub('_scheme','')} if sym.to_s =~ /[a-z]+_scheme/ # raise Error "#{sym} #{args.inspect}" end |
.privilege(resource, action) ⇒ Object
8 9 10 |
# File 'lib/non_grata/authorization.rb', line 8 def self.privilege(resource, action) schemes.first.privileges << Privilege.new(resource, action) end |
.privileges ⇒ Object
16 17 18 |
# File 'lib/non_grata/authorization.rb', line 16 def self.privileges main_scheme.privileges end |
.role(name, &block) ⇒ Object
12 13 14 |
# File 'lib/non_grata/authorization.rb', line 12 def self.role(name,&block) main_scheme.role(name, &block) end |
.roles(role_name = nil) ⇒ Object
35 36 37 |
# File 'lib/non_grata/authorization.rb', line 35 def self.roles(role_name=nil) main_scheme.roles(role_name) end |
.scheme(name, options = nil, &block) ⇒ Object
39 40 41 42 43 44 45 |
# File 'lib/non_grata/authorization.rb', line 39 def self.scheme(name, =nil, &block) scheme = Scheme.new(name, ) if block_given? scheme.config(&block) end schemes << scheme end |
.schemes(name = nil) ⇒ Object
returns either an array of all schemes or returns a specific scheme by name Ex: Authorization.schemes <- returns array of all schemes Authorization.schemes(:main) <- returns the scheme named ‘main’
26 27 28 29 30 31 32 33 |
# File 'lib/non_grata/authorization.rb', line 26 def self.schemes(name = nil) name = name if name.is_a? Symbol name = name.to_sym if name.is_a? String @schemes ||= [Scheme.new(:main, )] return @schemes if name.nil? return schemes.find{|i| i.name == name} end |