capcoauth 0.5.1 → 0.7.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
- SHA1:
3
- metadata.gz: 2e7d9ce3ab0387a5e6ff63bfa9990b2ecb552e8e
4
- data.tar.gz: 4700e039564f3df38017eec44876359cc643176a
2
+ SHA256:
3
+ metadata.gz: ccb50d6f80819e2df683c0e6a4fa2a804f07dfb2efbcd4e243e4676fc623a34c
4
+ data.tar.gz: 657b59b5775e7e564a1f9a8d66c581d4e7861479d35a053b5c177d4c7a2dd5f3
5
5
  SHA512:
6
- metadata.gz: cc4856103fb5ae49308bb88e0a6de6066a9d21aad931bca50f51843fe9548ca0781d5aa29b87c8617a97864b67c667e63d9066e132f0382eb36af0c6c5e0642f
7
- data.tar.gz: 80aef30e6b13fdf3cd524d1216b1cfc64eeb12f982cc4af6f093495096ecdcf2b9d486c8f0303d6110e21b458df76e4589edaba087ac02f6aa16e19eafe5b18c
6
+ metadata.gz: f7b8b2cfb9c5ce59c62d6df7be497bc9f2df438cc92b38fd8a2c3af36a7f931dc142a5ed8e9ae853d86fef11b64eb2a3920a5b6b3778a36333dfae466d9bda76
7
+ data.tar.gz: acab18d6e4f65d747f70660d98f3f0c976fb196f445ebd1fc3d02520c740c987a5319b5dfda6c24826cda11e754980195f4bf89fd5c7ff118413ef07f909e992
data/.travis.yml CHANGED
@@ -3,9 +3,11 @@ language: ruby
3
3
  sudo: false
4
4
 
5
5
  rvm:
6
- - 2.2.7
7
- - 2.3.4
8
- - 2.4.1
6
+ - 2.3.8
7
+ - 2.4.9
8
+ - 2.5.7
9
+ - 2.6.5
10
+ - 2.7.0
9
11
 
10
12
  before_install:
11
- - gem install bundler -v '~> 1.10'
13
+ - gem install bundler -v '~> 2.0.2'
data/Gemfile CHANGED
@@ -1,10 +1,11 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- gem 'rails', '~> 4.2.0'
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
@@ -14,5 +14,15 @@ module Capcoauth
14
14
  def oauth_callback_url
15
15
  "#{root_url}auth/callback"
16
16
  end
17
+
18
+ protected
19
+
20
+ def rotate_session_id
21
+ session_data = session.to_h
22
+ reset_session
23
+ session_data.each do |k, v|
24
+ session[k] = v
25
+ end
26
+ end
17
27
  end
18
28
  end
@@ -23,6 +23,7 @@ module Capcoauth
23
23
  @access_token = OAuth::AccessToken.new(response.parsed_response['access_token']).verify
24
24
 
25
25
  if @access_token
26
+ rotate_session_id
26
27
  session[:capcoauth_access_token] = @access_token.token
27
28
  session[:capcoauth_user_id] = @access_token.user_id
28
29
  redirect_to session[:previous_url].blank? ? root_url : session.delete(:previous_url)
@@ -20,7 +20,12 @@ module Capcoauth
20
20
  end
21
21
 
22
22
  # Otherwise, redirect
23
- redirect_to "#{Capcoauth.configuration.capcoauth_url}/oauth/authorize?client_id=#{Capcoauth.configuration.client_id}&redirect_uri=#{URI.encode(oauth_callback_url)}&response_type=code"
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
@@ -1,8 +1,8 @@
1
1
  module Capcoauth
2
2
  class LogoutController < Capcoauth::ApplicationController
3
3
  def show
4
- session.delete(:capcoauth_user_id)
5
- token = session.delete(:capcoauth_access_token)
4
+ token = session[:capcoauth_access_token]
5
+ session.destroy
6
6
  OAuth::TTLCache.remove(token) if token.present?
7
7
  redirect_to root_url, notice: 'You have been logged out'
8
8
  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', '< 6.0']
21
+ s.add_dependency 'railties', ['>= 4.2', '< 7.0']
22
22
  s.add_dependency 'activesupport', '>= 3.0'
23
- s.add_dependency 'httparty', '~> 0.14'
23
+ s.add_dependency 'httparty', '~> 0.17.3'
24
24
 
25
- s.add_development_dependency 'capybara'
26
- s.add_development_dependency 'database_cleaner', '~> 1.5.3'
27
- s.add_development_dependency 'factory_girl', '~> 4.7.0'
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.8.1'
29
+ s.add_development_dependency 'timecop', '~> 0.9.1'
32
30
  end
@@ -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 = 10.freeze
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`')
@@ -33,8 +33,8 @@ module Capcoauth
33
33
 
34
34
  def default_headers
35
35
  {
36
- 'Authorization': "Bearer #{bearer_token}",
37
- 'Content-Type': 'application/vnd.api+json'
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",
@@ -5,8 +5,8 @@ module Capcoauth
5
5
 
6
6
  module VERSION
7
7
  MAJOR = 0
8
- MINOR = 5
9
- PATCH = 1
8
+ MINOR = 7
9
+ PATCH = 0
10
10
 
11
11
  STRING = [MAJOR, MINOR, PATCH].compact.join(".")
12
12
  end
@@ -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'
@@ -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 be_falsey
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 be_truthy
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 be_truthy
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 be_truthy
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 be_falsey
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 be_truthy
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 be_falsey
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
@@ -7,7 +7,6 @@ TABLE_NAME_SUFFIX = ENV['table_name_suffix'] || nil
7
7
 
8
8
  $LOAD_PATH.unshift File.dirname(__FILE__)
9
9
 
10
- require 'capybara/rspec'
11
10
  require 'dummy/config/environment'
12
11
  require 'rspec/rails'
13
12
  require 'generator_spec/test_case'
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.5.1
4
+ version: 0.7.0
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: 2017-10-03 00:00:00.000000000 Z
11
+ date: 2021-06-29 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: '6.0'
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: '6.0'
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: '0.14'
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: '0.14'
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.5.3
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: 4.7.0
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.3
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.3
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: 11.3.0
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: 11.3.0
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.8.1
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.8.1
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
- rubyforge_project:
259
- rubygems_version: 2.6.7
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