doorkeeper_sso_client 0.2.9 → 0.3.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
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