Sha256: b22565201ae0a0c7500f01ddaf7cc9e60c04a2fb4d61f1ea2c9e56600c80addf
Contents?: true
Size: 1.12 KB
Versions: 2
Compression:
Stored size: 1.12 KB
Contents
# After sinatra-authorization... module CloudCrowd module Helpers module Authorization def login_required return if authorized? unauthorized! unless auth.provided? bad_request! unless auth.basic? unauthorized! unless authorize(*auth.credentials) request.env['REMOTE_USER'] = auth.username end def authorized? !!request.env['REMOTE_USER'] end def current_user request.env['REMOTE_USER'] end def authorize(login, password) return true unless CloudCrowd.config[:use_http_authentication] return CloudCrowd.config[:login] == login && CloudCrowd.config[:password] == password end private def auth @auth ||= Rack::Auth::Basic::Request.new(request.env) end def unauthorized!(realm = CloudCrowd::App.authorization_realm) response['WWW-Authenticate'] = "Basic realm=\"#{realm}\"" halt 401, 'Authorization Required' end def bad_request! halt 400, 'Bad Request' end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
documentcloud-cloud-crowd-0.0.2 | lib/cloud_crowd/helpers/authorization.rb |
documentcloud-cloud-crowd-0.0.3 | lib/cloud_crowd/helpers/authorization.rb |