populate-me 0.15.0 → 0.16.0
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 +4 -4
- data/lib/populate_me/admin.rb +8 -2
- data/lib/populate_me/version.rb +1 -1
- data/test/test_admin.rb +43 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a92596c5ed11fb3d67f18b48fdc1011ecf423f26390c2f71c3587c3c2cae93cf
|
4
|
+
data.tar.gz: 70e4e6572ed7e98ace3444ee6c6c18ff937b0ed72aa35b80a5c5d2ad99865d91
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cd01c21a0a760cb1691453ca86f22a75cbabd423134bd25c699fbd0ea96ef6a1845a88d130c61f62fcec9a2f77fb527759152307fb0fb762f0778a2f657bbe3d
|
7
|
+
data.tar.gz: fc764eb27f6c4dd76bde7b952432dc0a647872a061f564f3ac9104511b7baecd0a67866b9777726e329619cd6e1b3663e107f3e774d908e794cfe100592c44b4
|
data/lib/populate_me/admin.rb
CHANGED
@@ -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
|
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
|
|
data/lib/populate_me/version.rb
CHANGED
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 '
|
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 '
|
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.
|
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-
|
11
|
+
date: 2021-12-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: web-utils
|