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 +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
|