class NonGrata::Authorization
Public Class Methods
create(&block)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# File lib/non_grata/authorization.rb, line 8 def self.privilege(resource, action) schemes.first.privileges << Privilege.new(resource, action) end
privileges()
click to toggle source
# File lib/non_grata/authorization.rb, line 16 def self.privileges main_scheme.privileges end
role(name,&block)
click to toggle source
# File lib/non_grata/authorization.rb, line 12 def self.role(name,&block) main_scheme.role(name, &block) end
roles(role_name=nil)
click to toggle source
# 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)
click to toggle source
# File lib/non_grata/authorization.rb, line 39 def self.scheme(name, options=nil, &block) scheme = Scheme.new(name, options) if block_given? scheme.config(&block) end schemes << scheme end
schemes(name = nil)
click to toggle source
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’
# 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, options)] return @schemes if name.nil? return schemes.find{|i| i.name == name} end