doorkeeper_sso_client 0.4.5 → 0.4.6

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: d023a2b0e77cc03d40b7e1fbc979d3b6f4c518bf
4
- data.tar.gz: 5c38e72b6e17927ed4b534a7a8916618703893bd
3
+ metadata.gz: aa2d95c6f02bff6fa8d4bf95dcb760591e39d23d
4
+ data.tar.gz: ae2fd4b66c75e23957fac23bc1145930f7be73f4
5
5
  SHA512:
6
- metadata.gz: 37366c8de0979e3da04321c43933eb84e5593f5140f9eacd4280c8c90c1d3996c19acde2f5ccab23e26ad2b226ef03d77dfd6a655f981da992cc5fa299fd09d8
7
- data.tar.gz: 83f88664f332726c72bee19d970adf2f163802cbab0387ba7521a87dac87493910a14d78620c83d410740e3a5d70d5238b40c7a7bf85b7516288c0fad26fa8f7
6
+ metadata.gz: 3e5c7076db43b1f70cea8f9df1db648f24023ce27ff120af72e2a58c2c8681d9782ace202424dbebfea60e622e23110b1c4e98350e4cf4748eebd4b947063f7b
7
+ data.tar.gz: b399085444f1e88108bd0a55cc2011debed894ebefd6cc1e3738ba03e8c77a1ed052c93800ba1aa6bbccde5790577a87ae2f0ac083e1bdbd484cb13dc3432bc1
@@ -4,6 +4,7 @@ require "doorkeeper_sso_client/engine"
4
4
  require 'doorkeeper_sso_client/config'
5
5
  require 'doorkeeper_sso_client/logging'
6
6
  require 'doorkeeper_sso_client/passport_verifier'
7
+ require 'doorkeeper_sso_client/warden/support'
7
8
  require 'doorkeeper_sso_client/warden/hooks/after_fetch'
8
9
  require 'doorkeeper_sso_client/version'
9
10
  require 'omniauth/strategies/doorkeeper_sso'
@@ -1,9 +1,12 @@
1
- require 'doorkeeper_sso_client/mixins/passport_base'
2
1
  require 'doorkeeper_sso_client/mixins/devise/controller_helpers'
3
2
  require 'doorkeeper_sso_client/mixins/devise/test_helpers'
4
- require 'doorkeeper_sso_client/mixins/mongoid/passport'
3
+ require 'doorkeeper_sso_client/mixins/passport_base'
5
4
 
6
5
  module DoorkeeperSsoClient
7
6
  module Mixins
7
+ module Mongoid
8
+ autoload :Passport, 'doorkeeper_sso_client/mixins/mongoid/passport'
9
+ end
8
10
  end
9
11
  end
12
+
@@ -1,4 +1,4 @@
1
- require_dependency 'mongoid'
1
+ require 'mongoid'
2
2
 
3
3
  module DoorkeeperSsoClient
4
4
  module Mixins
@@ -1,5 +1,3 @@
1
- require_dependency 'mongoid'
2
-
3
1
  module DoorkeeperSsoClient
4
2
  module Mixins
5
3
  module PassportBase
@@ -12,7 +10,8 @@ module DoorkeeperSsoClient
12
10
 
13
11
  module ClassMethods
14
12
  def create_from_omniauth(auth_hash)
15
- passport = where(uid: auth_hash["extra"]["passport_id"]).first_or_initialize
13
+ uid = { uid: auth_hash["extra"]["passport_id"] }
14
+ passport = where(uid).first || new(uid)
16
15
  passport.update_attributes!(
17
16
  secret: auth_hash["extra"]["passport_secret"],
18
17
  token: auth_hash["credentials"]["token"],
@@ -1,3 +1,3 @@
1
1
  module DoorkeeperSsoClient
2
- VERSION = "0.4.5"
2
+ VERSION = "0.4.6"
3
3
  end
@@ -0,0 +1,38 @@
1
+ module DoorkeeperSsoClient
2
+ module Warden
3
+ module Support
4
+ extend ActiveSupport::Concern
5
+ include ::DoorkeeperSsoClient::Logging
6
+
7
+ included do
8
+ attr_reader :user, :warden, :options
9
+ delegate :request, to: :warden
10
+ delegate :params, to: :request
11
+ end
12
+
13
+ module ClassMethods
14
+ def to_proc
15
+ proc do |user, warden, options|
16
+ new(user, warden, options).call
17
+ end
18
+ end
19
+ end
20
+
21
+ def initialize(user, warden, options)
22
+ @user, @warden, @options = user, warden, options
23
+ end
24
+
25
+ def scope
26
+ scope = options[:scope]
27
+ end
28
+
29
+ def session
30
+ warden.session(scope)
31
+ end
32
+
33
+ def logged_in?
34
+ warden.authenticated?(scope) && session && user
35
+ end
36
+ end
37
+ end
38
+ end
@@ -12,4 +12,47 @@ RSpec.describe DoorkeeperSsoClient::Passport, :type => :model do
12
12
  it { is_expected.to validate_uniqueness_of(:uid) }
13
13
  end
14
14
 
15
+ describe "::create_from_omniauth" do
16
+ let(:token) { SecureRandom.hex }
17
+ let(:passport_uid) { SecureRandom.uuid }
18
+ let(:auth_hash) {
19
+ HashWithIndifferentAccess.new(
20
+ provider: 'mindvalley',
21
+ uid: '123545',
22
+ info: {
23
+ first_name: 'Steve',
24
+ last_name: 'Jobs',
25
+ email: 'steve@apple.com'
26
+ },
27
+ extra: {
28
+ passport_id: passport_uid
29
+ },
30
+ credentials: { token: token, refresh_token: nil, expiry: nil }
31
+ )
32
+ }
33
+ let(:fetched_passport) { DoorkeeperSsoClient::Passport.first }
34
+
35
+
36
+ before(:each) do
37
+ DoorkeeperSsoClient::Passport.create_from_omniauth(auth_hash)
38
+ end
39
+
40
+ context "new passport" do
41
+ it { expect(DoorkeeperSsoClient::Passport.count).to eq 1 }
42
+ it { expect(fetched_passport.uid).to eq passport_uid }
43
+ it { expect(fetched_passport.token).to eq token }
44
+ end
45
+
46
+ context "update existing" do
47
+ let!(:passport) { Fabricate("DoorkeeperSsoClient::Passport") }
48
+ let(:token) { passport.token }
49
+ let(:passport_uid) { passport.uid }
50
+
51
+ it { expect(DoorkeeperSsoClient::Passport.count).to eq 1 }
52
+ it { expect(fetched_passport.uid).to eq passport_uid }
53
+ it { expect(fetched_passport.token).to eq token }
54
+ end
55
+
56
+ end
57
+
15
58
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: doorkeeper_sso_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.5
4
+ version: 0.4.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Wong
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-24 00:00:00.000000000 Z
11
+ date: 2015-08-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: omniauth
@@ -72,14 +72,14 @@ dependencies:
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 2.0.0.rc1
75
+ version: '1'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 2.0.0.rc1
82
+ version: '1'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rails
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -351,6 +351,7 @@ files:
351
351
  - lib/doorkeeper_sso_client/passport_verifier.rb
352
352
  - lib/doorkeeper_sso_client/version.rb
353
353
  - lib/doorkeeper_sso_client/warden/hooks/after_fetch.rb
354
+ - lib/doorkeeper_sso_client/warden/support.rb
354
355
  - lib/omniauth/strategies/doorkeeper_sso.rb
355
356
  - lib/tasks/doorkeeper_sso_client_tasks.rake
356
357
  - spec/controllers/doorkeeper_sso_client/callbacks_controller_spec.rb