module Security::AuthRules

Public Instance Methods

validate_rule(roles = []) click to toggle source
# File lib/security/auth_rules.rb, line 15
def validate_rule(roles = [])
    roles.each do |role|
            if(validate_rule_role(role))
                    return true
            end
    end
    halt 401
end
validate_rule_role(role) click to toggle source
# File lib/security/auth_rules.rb, line 24
def validate_rule_role(role)
        controller = (request.route_obj && request.route_obj.controller) ? request.route_obj.controller.to_sym : :default
        #puts "controller => #{controller} RULES => #{@rules[role][@env['REQUEST_METHOD']][controller]}"
        if(@rules.has_key?(role) && @rules[role].has_key?(controller) && 
                        @rules[role][controller].has_key?(@env['REQUEST_METHOD']))
                rules_exp = @rules[role][controller][@env['REQUEST_METHOD']]
                rules_exp.each do |exp|
                        if((@env['PATH_INFO'] =~ /#{exp}/))
                                return true
                        end
                end
        end
        false
end
validate_user() { |user_session, user_token| ... } click to toggle source

Por ejemplo {

        :escort => {"GET" => ["/escorts/[0-9]+"]}
}
# File lib/security/auth_rules.rb, line 8
            def validate_user
                    if(@env["HTTP_USER_AUTH"])
          user_session, user_token = @env["HTTP_USER_AUTH"].split(':')
          yield(user_session, user_token)
    end
end