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