capcoauth 0.5.0 → 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 +5 -5
- data/.travis.yml +6 -4
- data/Gemfile +2 -1
- data/app/controllers/capcoauth/login_controller.rb +6 -1
- data/capcoauth.gemspec +6 -8
- data/lib/capcoauth/config.rb +4 -2
- data/lib/capcoauth/engine.rb +1 -1
- data/lib/capcoauth/notifications.rb +4 -2
- data/lib/capcoauth/rails/helpers.rb +1 -1
- data/lib/capcoauth/version.rb +2 -2
- data/lib/generators/capcoauth/templates/initializer.rb +3 -0
- data/spec/dummy/app/assets/config/manifest.js +1 -0
- data/spec/dummy/config/application.rb +2 -0
- data/spec/dummy/config/initializers/secret_token.rb +1 -3
- data/spec/lib/config_spec.rb +19 -7
- data/spec/spec_helper_integration.rb +0 -1
- metadata +20 -48
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: b90a20b86a9c6be726eaead5e05718e42010926d2c669d5b5d5bed4c5be71c09
|
4
|
+
data.tar.gz: fbd13ea0046b2f11303a23a6011160686a11811273d98fc94cf20ba4ac1c237d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8f3d938fb7d9111e1d2b7e1950776fd15bef9c0b81c7186d570cd6835c6218a53db09bba6ec7f3222dde100844846da9ca623f813a71bd453e775d392158a695
|
7
|
+
data.tar.gz: b602d5bf798bf5b925432a46b58eb8a63953c656454972bb1fa8e4b315b4edcf4876b972cfc73932f6ea99ae27784f0faf4b880fa08631ac5d86915c76fb5806
|
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
@@ -1,10 +1,11 @@
|
|
1
1
|
source 'https://rubygems.org'
|
2
2
|
|
3
|
-
gem 'rails', '~>
|
3
|
+
gem 'rails', '~> 5.2.6'
|
4
4
|
|
5
5
|
gem 'simplecov', require: false, group: :test
|
6
6
|
|
7
7
|
gem 'activerecord-jdbcsqlite3-adapter', platform: :jruby
|
8
8
|
gem 'sqlite3', platform: [:ruby, :mswin, :mingw, :x64_mingw]
|
9
9
|
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw]
|
10
|
+
|
10
11
|
gemspec
|
@@ -20,7 +20,12 @@ module Capcoauth
|
|
20
20
|
end
|
21
21
|
|
22
22
|
# Otherwise, redirect
|
23
|
-
|
23
|
+
params = {
|
24
|
+
client_id: Capcoauth.configuration.client_id,
|
25
|
+
redirect_uri: oauth_callback_url,
|
26
|
+
response_type: 'code',
|
27
|
+
}
|
28
|
+
redirect_to "#{Capcoauth.configuration.capcoauth_url}/oauth/authorize?#{params.to_param}"
|
24
29
|
end
|
25
30
|
end
|
26
31
|
end
|
data/capcoauth.gemspec
CHANGED
@@ -18,15 +18,13 @@ Gem::Specification.new do |s|
|
|
18
18
|
|
19
19
|
s.required_ruby_version = '>= 2.1'
|
20
20
|
|
21
|
-
s.add_dependency 'railties', ['>= 4.2', '<
|
21
|
+
s.add_dependency 'railties', ['>= 4.2', '< 7.0']
|
22
22
|
s.add_dependency 'activesupport', '>= 3.0'
|
23
|
-
s.add_dependency 'httparty', '~> 0.
|
23
|
+
s.add_dependency 'httparty', '~> 0.17.3'
|
24
24
|
|
25
|
-
s.add_development_dependency '
|
26
|
-
s.add_development_dependency '
|
27
|
-
s.add_development_dependency '
|
28
|
-
s.add_development_dependency 'generator_spec', '~> 0.9.3'
|
29
|
-
s.add_development_dependency 'rake', '>= 11.3.0'
|
25
|
+
s.add_development_dependency 'database_cleaner', '~> 1.7.0'
|
26
|
+
s.add_development_dependency 'generator_spec', '~> 0.9.4'
|
27
|
+
s.add_development_dependency 'rake', '>= 13.0.1'
|
30
28
|
s.add_development_dependency 'rspec-rails'
|
31
|
-
s.add_development_dependency 'timecop', '~> 0.
|
29
|
+
s.add_development_dependency 'timecop', '~> 0.9.1'
|
32
30
|
end
|
data/lib/capcoauth/config.rb
CHANGED
@@ -20,7 +20,7 @@ module Capcoauth
|
|
20
20
|
|
21
21
|
class Config
|
22
22
|
CAPCOAUTH_URL_DEFAULT = 'https://capcoauth.capco.com'.freeze
|
23
|
-
TOKEN_VERIFY_TTL_DEFAULT =
|
23
|
+
TOKEN_VERIFY_TTL_DEFAULT = 60.freeze
|
24
24
|
|
25
25
|
class Builder
|
26
26
|
def initialize(&block)
|
@@ -35,6 +35,7 @@ module Capcoauth
|
|
35
35
|
@config.user_id_field = :capcoauth
|
36
36
|
@config.cache_store = ::ActiveSupport::Cache::MemoryStore.new
|
37
37
|
@config.require_user = true
|
38
|
+
@config.send_notifications = false
|
38
39
|
|
39
40
|
# Evaluate configuration block
|
40
41
|
@config.instance_eval(&block)
|
@@ -53,7 +54,8 @@ module Capcoauth
|
|
53
54
|
:user_id_field,
|
54
55
|
:cache_store,
|
55
56
|
:user_resolver,
|
56
|
-
:require_user
|
57
|
+
:require_user,
|
58
|
+
:send_notifications
|
57
59
|
|
58
60
|
def client_id
|
59
61
|
@client_id || raise(MissingRequiredOptionError, 'Missing required option `client_id`')
|
data/lib/capcoauth/engine.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module Capcoauth
|
2
2
|
class Engine < Rails::Engine
|
3
3
|
initializer 'capcoauth.params.filter' do |app|
|
4
|
-
parameters = %w
|
4
|
+
parameters = %w(client_secret code authentication_token access_token refresh_token)
|
5
5
|
app.config.filter_parameters << /^(#{Regexp.union parameters})$/
|
6
6
|
end
|
7
7
|
|
@@ -33,8 +33,8 @@ module Capcoauth
|
|
33
33
|
|
34
34
|
def default_headers
|
35
35
|
{
|
36
|
-
'Authorization'
|
37
|
-
'Content-Type'
|
36
|
+
:'Authorization' => "Bearer #{bearer_token}",
|
37
|
+
:'Content-Type'=>'application/vnd.api+json'
|
38
38
|
}
|
39
39
|
end
|
40
40
|
|
@@ -77,6 +77,8 @@ module Capcoauth
|
|
77
77
|
end
|
78
78
|
|
79
79
|
def notify(user_id, alert=nil, badge=nil, data={})
|
80
|
+
return false unless Capcoauth.configuration.send_notifications
|
81
|
+
|
80
82
|
data = JSON.generate data
|
81
83
|
res = self.post(
|
82
84
|
"#{Capcoauth.configuration.capcoauth_url}/api/v1/user_notifications",
|
@@ -40,7 +40,7 @@ module Capcoauth
|
|
40
40
|
raise Capcoauth::AuthorizationError, reason if error == :unauthorized_error
|
41
41
|
|
42
42
|
# Raise an error if token has an ID but the user wasn't found
|
43
|
-
if Capcoauth.configuration.require_user and token.user_id.present? and current_user.blank?
|
43
|
+
if Capcoauth.configuration.require_user and token.present? and token.user_id.present? and current_user.blank?
|
44
44
|
Capcoauth.configuration.logger.info "[CapcOAuth] Error looking up user: Token returned ID ##{token.user_id} but resolver didn't return user"
|
45
45
|
raise Capcoauth::AuthorizationError, 'Your credentials were valid, but you aren\'t currently active in this system'
|
46
46
|
end
|
data/lib/capcoauth/version.rb
CHANGED
@@ -41,4 +41,7 @@ Capcoauth.configure do |config|
|
|
41
41
|
|
42
42
|
# Don't redirect to last URL on login since we don't want to see API responses
|
43
43
|
# config.perform_login_redirects = true
|
44
|
+
|
45
|
+
# Send push notifications (good to make this dependent on your environment)
|
46
|
+
# config.send_notifications = true
|
44
47
|
end
|
@@ -0,0 +1 @@
|
|
1
|
+
// Nothing
|
@@ -12,5 +12,7 @@ module Dummy
|
|
12
12
|
# Settings in config/environments/* take precedence over those specified here.
|
13
13
|
# Application configuration should go into files in config/initializers
|
14
14
|
# -- all .rb files in that directory are automatically loaded.
|
15
|
+
|
16
|
+
config.active_record.sqlite3.represent_boolean_as_integer = true
|
15
17
|
end
|
16
18
|
end
|
@@ -4,6 +4,4 @@
|
|
4
4
|
# If you change this key, all old signed cookies will become invalid!
|
5
5
|
# Make sure the secret is at least 30 characters and all random,
|
6
6
|
# no regular words or you'll be exposed to dictionary attacks.
|
7
|
-
Dummy::Application.config.secret_key_base =
|
8
|
-
Dummy::Application.config.secret_token =
|
9
|
-
'c00157b5a1bb6181792f0f4a8a080485de7bab9987e6cf159dc74c4f0573345c1bfa713b5d756e1491fc0b098567e8a619e2f8d268eda86a20a720d05d633780'
|
7
|
+
Dummy::Application.config.secret_key_base = 'c00157b5a1bb6181792f0f4a8a080485de7bab9987e6cf159dc74c4f0573345c1bfa713b5d756e1491fc0b098567e8a619e2f8d268eda86a20a720d05d633780'
|
data/spec/lib/config_spec.rb
CHANGED
@@ -119,11 +119,11 @@ describe Capcoauth::Config do
|
|
119
119
|
|
120
120
|
describe 'using_routes' do
|
121
121
|
it 'has value false by default' do
|
122
|
-
expect(subject.using_routes).to
|
122
|
+
expect(subject.using_routes).to eq(false)
|
123
123
|
end
|
124
124
|
it 'can be updated to true' do
|
125
125
|
subject.using_routes = true
|
126
|
-
expect(subject.using_routes).to
|
126
|
+
expect(subject.using_routes).to eq(true)
|
127
127
|
subject.using_routes = false
|
128
128
|
end
|
129
129
|
it 'is updated to true by Rails.application.routes.draw' do
|
@@ -132,17 +132,17 @@ describe Capcoauth::Config do
|
|
132
132
|
Rails.application.routes.draw do
|
133
133
|
use_capcoauth
|
134
134
|
end
|
135
|
-
expect(subject.using_routes).to
|
135
|
+
expect(subject.using_routes).to eq(true)
|
136
136
|
end
|
137
137
|
end
|
138
138
|
|
139
139
|
describe 'perform_login_redirects' do
|
140
140
|
it 'has value true by default' do
|
141
|
-
expect(subject.perform_login_redirects).to
|
141
|
+
expect(subject.perform_login_redirects).to eq(true)
|
142
142
|
end
|
143
143
|
it 'can be updated to false' do
|
144
144
|
subject.perform_login_redirects = false
|
145
|
-
expect(subject.perform_login_redirects).to
|
145
|
+
expect(subject.perform_login_redirects).to eq(false)
|
146
146
|
subject.perform_login_redirects = true
|
147
147
|
end
|
148
148
|
end
|
@@ -204,12 +204,24 @@ describe Capcoauth::Config do
|
|
204
204
|
|
205
205
|
describe 'require_user' do
|
206
206
|
it 'has value true by default' do
|
207
|
-
expect(subject.require_user).to
|
207
|
+
expect(subject.require_user).to eq(true)
|
208
208
|
end
|
209
209
|
it 'can be updated to false' do
|
210
210
|
subject.require_user = false
|
211
|
-
expect(subject.require_user).to
|
211
|
+
expect(subject.require_user).to eq(false)
|
212
212
|
subject.require_user = true
|
213
213
|
end
|
214
214
|
end
|
215
|
+
|
216
|
+
describe 'send_notifications' do
|
217
|
+
it 'has value false by default' do
|
218
|
+
expect(subject.send_notifications).to eq(false)
|
219
|
+
end
|
220
|
+
it 'can be updated to false' do
|
221
|
+
subject.send_notifications = false
|
222
|
+
expect(subject.send_notifications).to eq(false)
|
223
|
+
subject.send_notifications = true
|
224
|
+
expect(subject.send_notifications).to eq(true)
|
225
|
+
end
|
226
|
+
end
|
215
227
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capcoauth
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Robertson
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-06-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: railties
|
@@ -19,7 +19,7 @@ dependencies:
|
|
19
19
|
version: '4.2'
|
20
20
|
- - "<"
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: '
|
22
|
+
version: '7.0'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -29,7 +29,7 @@ dependencies:
|
|
29
29
|
version: '4.2'
|
30
30
|
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: '
|
32
|
+
version: '7.0'
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: activesupport
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -50,84 +50,56 @@ dependencies:
|
|
50
50
|
requirements:
|
51
51
|
- - "~>"
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version:
|
53
|
+
version: 0.17.3
|
54
54
|
type: :runtime
|
55
55
|
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
57
|
requirements:
|
58
58
|
- - "~>"
|
59
59
|
- !ruby/object:Gem::Version
|
60
|
-
version:
|
61
|
-
- !ruby/object:Gem::Dependency
|
62
|
-
name: capybara
|
63
|
-
requirement: !ruby/object:Gem::Requirement
|
64
|
-
requirements:
|
65
|
-
- - ">="
|
66
|
-
- !ruby/object:Gem::Version
|
67
|
-
version: '0'
|
68
|
-
type: :development
|
69
|
-
prerelease: false
|
70
|
-
version_requirements: !ruby/object:Gem::Requirement
|
71
|
-
requirements:
|
72
|
-
- - ">="
|
73
|
-
- !ruby/object:Gem::Version
|
74
|
-
version: '0'
|
60
|
+
version: 0.17.3
|
75
61
|
- !ruby/object:Gem::Dependency
|
76
62
|
name: database_cleaner
|
77
63
|
requirement: !ruby/object:Gem::Requirement
|
78
64
|
requirements:
|
79
65
|
- - "~>"
|
80
66
|
- !ruby/object:Gem::Version
|
81
|
-
version: 1.
|
82
|
-
type: :development
|
83
|
-
prerelease: false
|
84
|
-
version_requirements: !ruby/object:Gem::Requirement
|
85
|
-
requirements:
|
86
|
-
- - "~>"
|
87
|
-
- !ruby/object:Gem::Version
|
88
|
-
version: 1.5.3
|
89
|
-
- !ruby/object:Gem::Dependency
|
90
|
-
name: factory_girl
|
91
|
-
requirement: !ruby/object:Gem::Requirement
|
92
|
-
requirements:
|
93
|
-
- - "~>"
|
94
|
-
- !ruby/object:Gem::Version
|
95
|
-
version: 4.7.0
|
67
|
+
version: 1.7.0
|
96
68
|
type: :development
|
97
69
|
prerelease: false
|
98
70
|
version_requirements: !ruby/object:Gem::Requirement
|
99
71
|
requirements:
|
100
72
|
- - "~>"
|
101
73
|
- !ruby/object:Gem::Version
|
102
|
-
version:
|
74
|
+
version: 1.7.0
|
103
75
|
- !ruby/object:Gem::Dependency
|
104
76
|
name: generator_spec
|
105
77
|
requirement: !ruby/object:Gem::Requirement
|
106
78
|
requirements:
|
107
79
|
- - "~>"
|
108
80
|
- !ruby/object:Gem::Version
|
109
|
-
version: 0.9.
|
81
|
+
version: 0.9.4
|
110
82
|
type: :development
|
111
83
|
prerelease: false
|
112
84
|
version_requirements: !ruby/object:Gem::Requirement
|
113
85
|
requirements:
|
114
86
|
- - "~>"
|
115
87
|
- !ruby/object:Gem::Version
|
116
|
-
version: 0.9.
|
88
|
+
version: 0.9.4
|
117
89
|
- !ruby/object:Gem::Dependency
|
118
90
|
name: rake
|
119
91
|
requirement: !ruby/object:Gem::Requirement
|
120
92
|
requirements:
|
121
93
|
- - ">="
|
122
94
|
- !ruby/object:Gem::Version
|
123
|
-
version:
|
95
|
+
version: 13.0.1
|
124
96
|
type: :development
|
125
97
|
prerelease: false
|
126
98
|
version_requirements: !ruby/object:Gem::Requirement
|
127
99
|
requirements:
|
128
100
|
- - ">="
|
129
101
|
- !ruby/object:Gem::Version
|
130
|
-
version:
|
102
|
+
version: 13.0.1
|
131
103
|
- !ruby/object:Gem::Dependency
|
132
104
|
name: rspec-rails
|
133
105
|
requirement: !ruby/object:Gem::Requirement
|
@@ -148,14 +120,14 @@ dependencies:
|
|
148
120
|
requirements:
|
149
121
|
- - "~>"
|
150
122
|
- !ruby/object:Gem::Version
|
151
|
-
version: 0.
|
123
|
+
version: 0.9.1
|
152
124
|
type: :development
|
153
125
|
prerelease: false
|
154
126
|
version_requirements: !ruby/object:Gem::Requirement
|
155
127
|
requirements:
|
156
128
|
- - "~>"
|
157
129
|
- !ruby/object:Gem::Version
|
158
|
-
version: 0.
|
130
|
+
version: 0.9.1
|
159
131
|
description: capcoauth-gem is a library to integrate Rails applications with Capcoauth
|
160
132
|
authentication service
|
161
133
|
email:
|
@@ -168,7 +140,6 @@ files:
|
|
168
140
|
- ".rspec"
|
169
141
|
- ".travis.yml"
|
170
142
|
- Gemfile
|
171
|
-
- Gemfile.lock
|
172
143
|
- LICENSE
|
173
144
|
- README.md
|
174
145
|
- Rakefile
|
@@ -194,6 +165,7 @@ files:
|
|
194
165
|
- lib/generators/capcoauth/templates/README
|
195
166
|
- lib/generators/capcoauth/templates/initializer.rb
|
196
167
|
- spec/dummy/Rakefile
|
168
|
+
- spec/dummy/app/assets/config/manifest.js
|
197
169
|
- spec/dummy/app/controllers/application_controller.rb
|
198
170
|
- spec/dummy/app/controllers/full_protected_resources_controller.rb
|
199
171
|
- spec/dummy/app/controllers/home_controller.rb
|
@@ -240,7 +212,7 @@ homepage: https://github.com/arcreative/capcoauth-gem
|
|
240
212
|
licenses:
|
241
213
|
- MIT
|
242
214
|
metadata: {}
|
243
|
-
post_install_message:
|
215
|
+
post_install_message:
|
244
216
|
rdoc_options: []
|
245
217
|
require_paths:
|
246
218
|
- lib
|
@@ -255,13 +227,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
255
227
|
- !ruby/object:Gem::Version
|
256
228
|
version: '0'
|
257
229
|
requirements: []
|
258
|
-
|
259
|
-
|
260
|
-
signing_key:
|
230
|
+
rubygems_version: 3.1.6
|
231
|
+
signing_key:
|
261
232
|
specification_version: 4
|
262
233
|
summary: Integration with Capcoauth authentication service
|
263
234
|
test_files:
|
264
235
|
- spec/dummy/Rakefile
|
236
|
+
- spec/dummy/app/assets/config/manifest.js
|
265
237
|
- spec/dummy/app/controllers/application_controller.rb
|
266
238
|
- spec/dummy/app/controllers/full_protected_resources_controller.rb
|
267
239
|
- spec/dummy/app/controllers/home_controller.rb
|