populate-me 0.15.0 → 0.16.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 85deae1b12e76c47c378e2f3843d5e840d06b95cc5359edd130fd64ffa9b88d0
4
- data.tar.gz: 7078d10da19910b9962bfd3656c3543dd5389be624d11896e8248246f4170eeb
3
+ metadata.gz: a92596c5ed11fb3d67f18b48fdc1011ecf423f26390c2f71c3587c3c2cae93cf
4
+ data.tar.gz: 70e4e6572ed7e98ace3444ee6c6c18ff937b0ed72aa35b80a5c5d2ad99865d91
5
5
  SHA512:
6
- metadata.gz: 44c9c3cabe40c90112e0cc4af8e4e1b9f3105f9c7baff24e568cda0e3fb697c84ad00f62e2812fa323ac18475fe3d9d85b711409b1a07f8ba3077b0d9e8973b2
7
- data.tar.gz: 3a9f806d103a25e7444cda57035bcd5fbfd6fbfa4492458b340c4a56324a4bca990f5e65c3f489728a0d07aa28e62f8c855c9a9cb602b7abc71ba12622d565e4
6
+ metadata.gz: cd01c21a0a760cb1691453ca86f22a75cbabd423134bd25c699fbd0ea96ef6a1845a88d130c61f62fcec9a2f77fb527759152307fb0fb762f0778a2f657bbe3d
7
+ data.tar.gz: fc764eb27f6c4dd76bde7b952432dc0a647872a061f564f3ac9104511b7baecd0a67866b9777726e329619cd6e1b3663e107f3e774d908e794cfe100592c44b4
@@ -123,11 +123,17 @@ class PopulateMe::Admin < Sinatra::Base
123
123
  # Method = overridable = testable
124
124
  ENV['CERBERUS_PASS']
125
125
  end
126
+
126
127
  def cerberus_available?
127
128
  # Method = overridable = testable
128
129
  Rack.const_defined?(:Cerberus)
129
130
  end
130
131
 
132
+ def cerberus_auth user, pass, req
133
+ pass == cerberus_pass
134
+ end
135
+
136
+
131
137
  private
132
138
 
133
139
  def setup_default_middleware builder
@@ -151,8 +157,8 @@ class PopulateMe::Admin < Sinatra::Base
151
157
  return unless settings.cerberus_active
152
158
  cerberus_settings = settings.cerberus==true ? {} : settings.cerberus
153
159
  cerberus_settings[:session_key] = 'populate_me_user'
154
- builder.use Rack::Cerberus, cerberus_settings do |user,pass,req|
155
- pass==cerberus_pass
160
+ builder.use Rack::Cerberus, cerberus_settings do |user, pass, req|
161
+ cerberus_auth user, pass, req
156
162
  end
157
163
  end
158
164
 
@@ -1,4 +1,4 @@
1
1
  module PopulateMe
2
- VERSION = '0.15.0'
2
+ VERSION = '0.16.0'
3
3
  end
4
4
 
data/test/test_admin.rb CHANGED
@@ -22,6 +22,12 @@ class AdminWithCerberusPass < Admin
22
22
  end
23
23
  end
24
24
 
25
+ class AdminWithCustomCerberusAuth < AdminWithCerberusPass
26
+ def self.cerberus_auth user, pass, req
27
+ [user, pass] == ['mario', '1234']
28
+ end
29
+ end
30
+
25
31
  class AdminCerberusNotAvailable < AdminWithCerberusPass
26
32
  def self.cerberus_available?
27
33
  false
@@ -106,19 +112,54 @@ describe PopulateMe::Admin do
106
112
  assert_equal 'text/css', last_response.content_type
107
113
  end
108
114
 
109
- describe 'when cerberus is active' do
115
+ describe 'When cerberus is active' do
110
116
  let(:app) { AdminWithCerberusPass.new }
111
117
  it 'Uses Cerberus for authentication' do
112
118
  get '/'
113
119
  assert_equal 401, last_response.status
114
120
  end
121
+ it 'Authenticates with right login details' do
122
+ get '/', {
123
+ cerberus_login: 'admin',
124
+ cerberus_pass: '123',
125
+ _method: 'get'
126
+ }
127
+ assert_equal 200, last_response.status
128
+ end
129
+ it 'Fails authentication when login details are wrong' do
130
+ get '/', {
131
+ cerberus_login: 'admin',
132
+ cerberus_pass: 'xxx',
133
+ _method: 'get'
134
+ }
135
+ assert_equal 401, last_response.status
136
+ end
115
137
  end
116
- describe 'when cerberus is inactive' do
138
+ describe 'When cerberus is inactive' do
117
139
  it 'Does not use Cerberus' do
118
140
  get '/'
119
141
  assert_predicate last_response, :ok?
120
142
  end
121
143
  end
144
+ describe 'When cerberus_auth is overridden' do
145
+ let(:app) { AdminWithCustomCerberusAuth.new }
146
+ it 'Authenticates with right login details' do
147
+ get '/', {
148
+ cerberus_login: 'mario',
149
+ cerberus_pass: '1234',
150
+ _method: 'get'
151
+ }
152
+ assert_equal 200, last_response.status
153
+ end
154
+ it 'Fails authentication when login details are wrong' do
155
+ get '/', {
156
+ cerberus_login: 'admin',
157
+ cerberus_pass: '123',
158
+ _method: 'get'
159
+ }
160
+ assert_equal 401, last_response.status
161
+ end
162
+ end
122
163
 
123
164
  end
124
165
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: populate-me
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.0
4
+ version: 0.16.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mickael Riga
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-09-27 00:00:00.000000000 Z
11
+ date: 2021-12-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: web-utils