rack-ninja_auth 0.6.2 → 0.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1768ee1ddc4807f1809a686655382f01aa9b809e
4
- data.tar.gz: 11590bc1312c37a39fe49529bc93f01180802c49
3
+ metadata.gz: c05607d9320345cc6c4167b2da27e5ea9490fe5b
4
+ data.tar.gz: da48b29ed9ef6f63036e13b57d1d0b59b37e6dcf
5
5
  SHA512:
6
- metadata.gz: 5f61354e0351ed53d807d0e12113ed864406bba7f20387d5ecf5f92ac7a65b0908bc30c438747d974868699e69ce167a953e2acf67a656f233cbbb5219558d9f
7
- data.tar.gz: c8fd786923419675a8ca21dfba15b280ccc0bdecd543345b07878773e81ce67f4027b3f4dec7df3e2c66587580d4ea34e35dc48336288aff48fdedeb44b26c8f
6
+ metadata.gz: ea83683f11ae98c340e502407f66d863bd776a02f67e293630b5e783a114ef1fc51c6f03662342c7a9bfb12d00777a347f37e0c048408674ad78506e083b5a9b
7
+ data.tar.gz: 0ec4df77dc177086bd2f620c0eeeb2129115104001c65d3b4ebcfa11bbb380ba52bc6fecc740b32e01d49d094ad7cef670ef0d37bb0a8fa4d1350760ffaa95a2
@@ -1,5 +1,5 @@
1
1
  module Rack
2
2
  module NinjaAuth
3
- VERSION = "0.6.2"
3
+ VERSION = "0.6.3"
4
4
  end
5
5
  end
@@ -15,12 +15,15 @@ module Rack
15
15
  provider :google_oauth2, ENV["NINJA_GOOGLE_CLIENT_ID"], ENV["NINJA_GOOGLE_CLIENT_SECRET"]
16
16
  end
17
17
 
18
- def initialize(app, email_matcher: //, secured_routes: //, not_allowed_file: nil)
18
+ def initialize(app, email_matcher: //, secured_routes: //, not_allowed_file: nil, authorized_file: nil)
19
19
  $stderr.puts "Please set NINJA_GOOGLE_CLIENT_ID and NINJA_GOOGLE_CLIENT_SECRET to use NinjaAuth" unless ENV["NINJA_GOOGLE_CLIENT_ID"] && ENV["NINJA_GOOGLE_CLIENT_SECRET"]
20
20
  @main_app = app
21
21
  @email_matcher = email_matcher
22
22
  @secured_route_matcher = secured_routes
23
- @not_allowed_file = not_allowed_file || ::File.expand_path('../../../views/401.html', __FILE__)
23
+ @not_allowed_file = ::File.join(__dir__, '../../views/401.html')
24
+ @not_allowed_file = not_allowed_file if not_allowed_file && ::File.exists?(not_allowed_file)
25
+ @authorized_file = ::File.join(__dir__, '../../views/200.html')
26
+ @authorized_file = authorized_file if authorized_file && ::File.exists?(authorized_file)
24
27
  super()
25
28
  end
26
29
 
@@ -38,18 +41,14 @@ module Rack
38
41
  email = request.env["omniauth.auth"].info.email rescue nil
39
42
  if allowable_email?(email)
40
43
  authenticate!(email: email)
41
- redirect '/'
44
+ send_file(@authorized_file, status: 200)
42
45
  else
43
- redirect '/auth/failure'
46
+ send_file(@not_allowed_file, status: 403)
44
47
  end
45
48
  end
46
49
 
47
- get '/auth/failure' do
48
- send_file(@not_allowed_file, status: 401)
49
- end
50
-
51
50
  after do
52
- if !@hit_real_app && status == 404
51
+ if !@hit_real_app && !is_internal_request?
53
52
  halt(403) unless env['rack-accept.request'].media_type?('text/html')
54
53
  headers['X-Cascade'] = 'stop'
55
54
  redirect '/auth/google_oauth2'
@@ -76,7 +75,7 @@ module Rack
76
75
  end
77
76
 
78
77
  def is_internal_request?
79
- !!env['REQUEST_URI'].match(%r{^/auth/})
78
+ !!env['REQUEST_URI'].match(%r{^/auth/google_oauth2})
80
79
  end
81
80
  end
82
81
  end
data/views/200.html ADDED
@@ -0,0 +1,20 @@
1
+ <!DOCTYPE html>
2
+ <!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
3
+ <!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
4
+ <!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
5
+ <!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
6
+ <head>
7
+ <meta charset="utf-8">
8
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
9
+ <title>Not authorized</title>
10
+ <meta name="description" content="Not authorized - Ninja Auth">
11
+ <meta name="viewport" content="width=device-width, initial-scale=1">
12
+ </head>
13
+ <body>
14
+ <div class="alert">
15
+ <h1>Thanks!</h1>
16
+ <p>You've successfully authenticated, the link below will take you to the site.</p>
17
+ <p><a href="/">Go Home</a></p>
18
+ </div>
19
+ </body>
20
+ </html>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack-ninja_auth
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.2
4
+ version: 0.6.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - JP Hastings-Spital
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-04-06 00:00:00.000000000 Z
11
+ date: 2016-04-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sinatra
@@ -143,6 +143,7 @@ files:
143
143
  - lib/rack/ninja_auth.rb
144
144
  - lib/rack/ninja_auth/version.rb
145
145
  - rack-ninja_auth.gemspec
146
+ - views/200.html
146
147
  - views/401.html
147
148
  homepage: https://github.com/jphastings/rack-ninja_auth
148
149
  licenses: