File: auth.rb

package info (click to toggle)
ruby-grack 2.0.2-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 188 kB
  • sloc: ruby: 566; sh: 41; makefile: 6
file content (37 lines) | stat: -rw-r--r-- 809 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
require 'rack/auth/basic'
require 'rack/auth/abstract/handler'
require 'rack/auth/abstract/request'

module Grack
  class Auth < Rack::Auth::Basic
    def call(env)
      @env = env
      @request = Rack::Request.new(env)
      @auth = Request.new(env)

      if not @auth.provided?
        unauthorized
      elsif not @auth.basic?
        bad_request
      else
        result = if (access = valid? and access == true)
          @env['REMOTE_USER'] = @auth.username
          @app.call(env)
        else
          if access == '404'
            render_not_found
          elsif access == '403'
            render_no_access
          else
            unauthorized
          end
        end
        result
      end
    end# method call

    def valid?
      false
    end
  end# class Auth
end# module Grack