doorkeeper_sso_client 0.2.9 → 0.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 877c71b722d2bc6120cbcceea4fc0cf214e1d928
4
- data.tar.gz: f41438bdf2597ac5088e130d6f916aa9df70c41f
3
+ metadata.gz: 4ba633d01e5284693e1017241a56d0714eb900a7
4
+ data.tar.gz: 7f3c8145ad1dd0718c5501becce65b970cad1d2c
5
5
  SHA512:
6
- metadata.gz: 133cc2b13a9f945052efc5f6b526ee063a9be7966d500f0e0eb6f4e260c3a675b0de71d7a4b1e177777a53212a3102737fdb9e8a052f194adf6a47b4c1fa8384
7
- data.tar.gz: 59651d540ba65c0bc3c549f0cde7ffb76a387fd080dbe7144a4c521df5522fc48e33c63843532da52c2ea9172b688704de43e05e28fe3673330d92fbf1e2f42b
6
+ metadata.gz: b801b58747c26ebfeeb4b23963bc8d22c51160a69ac9736bc2b9ddb93e7cc4de36c0874c35e7bebfa667e22837e10d48d2babfc55ffe48d46531cf53ae71bc4f
7
+ data.tar.gz: 58da3a6a8822c79de13fa85bdad701b2c731fb2a793100ea4ca2482eabd3f677059cfeace9dd8e91e782b8469f2516fbeaba71137abb7ed763cdda49e6a209a2
@@ -13,11 +13,5 @@ module DoorkeeperSsoClient
13
13
  :request_specs => false
14
14
  g.fixture_replacement :fabrication
15
15
  end
16
-
17
- config.before_initialize do
18
- if Object.const_defined?("Devise")
19
- ::Devise::Controllers::Helpers.send(:include, DoorkeeperSsoClient::Mixins::ControllerHelpers)
20
- end
21
- end
22
16
  end
23
17
  end
@@ -0,0 +1,40 @@
1
+ module DoorkeeperSsoClient
2
+ module Mixins
3
+ module Devise
4
+ module ControllerHelpers
5
+ extend ActiveSupport::Concern
6
+
7
+ module ClassMethods
8
+ def activate_sso(scope, options = {})
9
+ class_eval <<-METHODS, __FILE__, __LINE__ + 1
10
+ def validate_passport!
11
+ if #{scope}_signed_in?
12
+ sign_out(current_#{scope}) unless current_#{scope}.passport.try(:active?)
13
+ end
14
+ return true
15
+ end
16
+
17
+ def after_sign_out_path_for(resource_or_scope)
18
+ scope = ::Devise::Mapping.find_scope!(resource_or_scope)
19
+ if scope == :#{scope}
20
+ return File.join( DoorkeeperSsoClient::Config.base_uri, "logout?app_id=" + DoorkeeperSsoClient::Config.oauth_client_id.to_s )
21
+ end
22
+ super
23
+ end
24
+ METHODS
25
+
26
+ unless options[:skip_devise_hook]
27
+ class_eval <<-METHODS, __FILE__, __LINE__ + 1
28
+ def authenticate_#{scope}!
29
+ store_location_for(:#{scope}, request.original_url)
30
+ validate_passport!
31
+ redirect_to DoorkeeperSsoClient::Config.oauth_login_path unless #{scope}_signed_in?
32
+ end
33
+ METHODS
34
+ end
35
+ end
36
+ end
37
+ end # ControllerHelpers
38
+ end
39
+ end # Mixins
40
+ end # DoorkeeperSsoClient
@@ -1,4 +1,4 @@
1
- require 'doorkeeper_sso_client/mixins/controller_helpers'
1
+ require 'doorkeeper_sso_client/mixins/devise/controller_helpers'
2
2
 
3
3
  module DoorkeeperSsoClient
4
4
  module Mixins
@@ -1,3 +1,3 @@
1
1
  module DoorkeeperSsoClient
2
- VERSION = "0.2.9"
2
+ VERSION = "0.3.0"
3
3
  end
@@ -2,26 +2,16 @@ require 'rails_helper'
2
2
 
3
3
  RSpec.describe ::DoorkeeperSsoClient::Config do
4
4
 
5
- before(:each) do
6
- ::DoorkeeperSsoClient::Config.reset
7
- end
8
-
9
- pending "no config" do
10
- it { expect(::DoorkeeperSsoClient::Config.oauth_client_id).to raise_error }
11
- end
5
+ # before(:each) do
6
+ # ::DoorkeeperSsoClient::Config.configure do |config|
7
+ # config[:oauth_client_id] = 123
8
+ # config[:oauth_client_secret] = 'abc'
9
+ # config[:base_uri] = 'http://localhost'
10
+ # end
11
+ # end
12
12
 
13
13
  context "with config" do
14
-
15
- before(:each) do
16
- ::DoorkeeperSsoClient::Config.reset
17
- ::DoorkeeperSsoClient::Config.configure do |config|
18
- config[:oauth_client_id] = 123
19
- config[:oauth_client_secret] = 'abc'
20
- config[:base_uri] = 'http://localhost'
21
- end
22
- end
23
-
24
- describe "stores config" do
14
+ pending "stores config" do
25
15
  it { expect(::DoorkeeperSsoClient::Config.oauth_client_id).to eq 123 }
26
16
  it { expect(::DoorkeeperSsoClient::Config.oauth_client_secret).to eq 'abc' }
27
17
  it { expect(::DoorkeeperSsoClient::Config.base_uri).to eq 'http://localhost' }
@@ -29,6 +19,7 @@ RSpec.describe ::DoorkeeperSsoClient::Config do
29
19
 
30
20
  describe "have default values" do
31
21
  it { expect(::DoorkeeperSsoClient::Config.sessions_path).to eq '/sso/sessions' }
22
+ it { expect(::DoorkeeperSsoClient::Config.oauth_login_path).to eq '/auth/doorkeeper_sso' }
32
23
  it { expect(::DoorkeeperSsoClient::Config.passport_verification_timeout_ms).to eq 200 }
33
24
  end
34
25
  end
@@ -2,8 +2,10 @@ require 'rails_helper'
2
2
 
3
3
  # DoorkeeperSsoClient::Mixins::ControllerHelpers automatically included into Devise::Controller::Helpers
4
4
 
5
- RSpec.describe "DoorkeeperSsoClient::Mixins::ControllerHelpers DeviseHook", :type => :controller do
5
+ RSpec.describe "DoorkeeperSsoClient::Mixins::Devise::ControllerHelpers DeviseHook", :type => :controller do
6
6
  controller(ApplicationController) do
7
+ include DoorkeeperSsoClient::Mixins::Devise::ControllerHelpers
8
+
7
9
  activate_sso :user
8
10
  before_filter :authenticate_user!
9
11
 
@@ -53,8 +55,10 @@ end
53
55
 
54
56
 
55
57
 
56
- RSpec.describe "DoorkeeperSsoClient::Mixins::ControllerHelpers SkipDeviseHook", :type => :controller do
58
+ RSpec.describe "DoorkeeperSsoClient::Mixins::Devise::ControllerHelpers SkipDeviseHook", :type => :controller do
57
59
  controller(ApplicationController) do
60
+ include DoorkeeperSsoClient::Mixins::Devise::ControllerHelpers
61
+
58
62
  activate_sso :user, :skip_devise_hook => true
59
63
  before_filter :authenticate_user!
60
64
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: doorkeeper_sso_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.9
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Wong
@@ -317,6 +317,7 @@ files:
317
317
  - lib/doorkeeper_sso_client/logging.rb
318
318
  - lib/doorkeeper_sso_client/mixins.rb
319
319
  - lib/doorkeeper_sso_client/mixins/controller_helpers.rb
320
+ - lib/doorkeeper_sso_client/mixins/devise/controller_helpers.rb
320
321
  - lib/doorkeeper_sso_client/passport_verifier.rb
321
322
  - lib/doorkeeper_sso_client/version.rb
322
323
  - lib/doorkeeper_sso_client/warden/hooks/after_fetch.rb
@@ -326,7 +327,7 @@ files:
326
327
  - spec/fabricators/passport_fabricator.rb
327
328
  - spec/fabricators/user_fabricator.rb
328
329
  - spec/lib/doorkeeper_sso_client/config_spec.rb
329
- - spec/lib/doorkeeper_sso_client/mixins/controller_helper_spec.rb
330
+ - spec/lib/doorkeeper_sso_client/mixins/devise/controller_helper_spec.rb
330
331
  - spec/models/config_spec.rb
331
332
  - spec/models/passport_spec.rb
332
333
  - spec/rails_helper.rb
@@ -373,7 +374,7 @@ test_files:
373
374
  - spec/fabricators/passport_fabricator.rb
374
375
  - spec/fabricators/user_fabricator.rb
375
376
  - spec/lib/doorkeeper_sso_client/config_spec.rb
376
- - spec/lib/doorkeeper_sso_client/mixins/controller_helper_spec.rb
377
+ - spec/lib/doorkeeper_sso_client/mixins/devise/controller_helper_spec.rb
377
378
  - spec/models/config_spec.rb
378
379
  - spec/models/passport_spec.rb
379
380
  - spec/rails_helper.rb