doorkeeper_sso_client 0.4.3 → 0.4.5

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: 47c9f11b2efdd8c4ed007aa6390d87ff1c936516
4
- data.tar.gz: e69fd047adc6b6a2641e331152499ebb4965f9cf
3
+ metadata.gz: d023a2b0e77cc03d40b7e1fbc979d3b6f4c518bf
4
+ data.tar.gz: 5c38e72b6e17927ed4b534a7a8916618703893bd
5
5
  SHA512:
6
- metadata.gz: 701069b5f57bbc69ce250d5baef0a714bfad5910c4a04bb324fdaaede4aecf5bad5f1dc38b2e15e21774bf6e2bd4910bfa91a61003d1f318159f28747b274e37
7
- data.tar.gz: 2af04057c7c01621c6b507ab5c5a37abff79d45c1cb85afd8da09dc6cebb6c3e911456c98fd90704ef81a7c58f335d22e162136afe3826cdd70488ea61b29d07
6
+ metadata.gz: 37366c8de0979e3da04321c43933eb84e5593f5140f9eacd4280c8c90c1d3996c19acde2f5ccab23e26ad2b226ef03d77dfd6a655f981da992cc5fa299fd09d8
7
+ data.tar.gz: 83f88664f332726c72bee19d970adf2f163802cbab0387ba7521a87dac87493910a14d78620c83d410740e3a5d70d5238b40c7a7bf85b7516288c0fad26fa8f7
@@ -1,5 +1,7 @@
1
+ require 'doorkeeper_sso_client/mixins/passport_base'
1
2
  require 'doorkeeper_sso_client/mixins/devise/controller_helpers'
2
3
  require 'doorkeeper_sso_client/mixins/devise/test_helpers'
4
+ require 'doorkeeper_sso_client/mixins/mongoid/passport'
3
5
 
4
6
  module DoorkeeperSsoClient
5
7
  module Mixins
@@ -28,6 +28,7 @@ module DoorkeeperSsoClient
28
28
  end
29
29
 
30
30
  def sign_out(resource_or_scope=nil)
31
+ return sign_out_all_scopes unless resource_or_scope
31
32
  if scope_match? resource_or_scope, :#{scope}
32
33
  session['passport_id'] = nil
33
34
  end
@@ -6,7 +6,6 @@ module DoorkeeperSsoClient
6
6
 
7
7
  def sign_out(resource_or_scope=nil)
8
8
  @controller.sign_out(resource_or_scope)
9
- super
10
9
  end
11
10
  end # TestHelpers
12
11
  end
@@ -0,0 +1,40 @@
1
+ require_dependency 'mongoid'
2
+
3
+ module DoorkeeperSsoClient
4
+ module Mixins
5
+ module Mongoid
6
+ module Passport
7
+ extend ActiveSupport::Concern
8
+
9
+ include ::Mongoid::Document
10
+ include ::Mongoid::Timestamps
11
+ include ::DoorkeeperSsoClient::Mixins::PassportBase
12
+
13
+ included do
14
+ field :identity_id, type: Integer
15
+ field :identity_type, type: String
16
+ field :secret, type: String
17
+ field :state, type: String
18
+ field :chip, type: String
19
+ field :verified, type: Boolean, default: false
20
+ field :modified, type: Boolean, default: false
21
+ field :created_at, type: DateTime
22
+ field :updated_at, type: DateTime
23
+ field :uid, type: String
24
+ field :token, type: String
25
+ field :refresh_token, type: String
26
+ field :token_expiry, type: DateTime
27
+ field :revoked_at, type: DateTime
28
+ field :revoke_reason, type: String
29
+ field :last_login_at, type: DateTime
30
+ end
31
+
32
+ module ClassMethods
33
+ def find_by_uid(uid)
34
+ passport = where(uid: uid).first
35
+ end
36
+ end # ClassMethods
37
+ end # Passport
38
+ end # Mongoid
39
+ end # Mixins
40
+ end # DoorkeeperSsoClient
@@ -0,0 +1,61 @@
1
+ require_dependency 'mongoid'
2
+
3
+ module DoorkeeperSsoClient
4
+ module Mixins
5
+ module PassportBase
6
+ extend ActiveSupport::Concern
7
+
8
+ included do
9
+ belongs_to :identity, polymorphic: true
10
+ validates :uid, presence: true, uniqueness: true
11
+ end
12
+
13
+ module ClassMethods
14
+ def create_from_omniauth(auth_hash)
15
+ passport = where(uid: auth_hash["extra"]["passport_id"]).first_or_initialize
16
+ passport.update_attributes!(
17
+ secret: auth_hash["extra"]["passport_secret"],
18
+ token: auth_hash["credentials"]["token"],
19
+ refresh_token: auth_hash["credentials"]["refresh_token"],
20
+ token_expiry: auth_hash["credentials"]["expiry"],
21
+ revoked_at: nil,
22
+ revoke_reason: nil,
23
+ last_login_at: Time.current
24
+ )
25
+ end
26
+ end # ClassMethods
27
+
28
+ def update_from_pingback(pingback_hash)
29
+ update_attributes!(
30
+ revoked_at: pingback_hash["revoked_at"],
31
+ revoke_reason: pingback_hash["revoke_reason"],
32
+ last_login_at: pingback_hash["activity_at"]
33
+ )
34
+ end
35
+
36
+ def verified!
37
+ update_attribute(:verified, true)
38
+ end
39
+
40
+ def unverified?
41
+ !verified?
42
+ end
43
+
44
+ def modified!
45
+ update_attribute(:modified, true)
46
+ end
47
+
48
+ def unmodified?
49
+ !modified?
50
+ end
51
+
52
+ def delta
53
+ { state: state, user: user }
54
+ end
55
+
56
+ def active?
57
+ revoked_at.blank?
58
+ end
59
+ end # Passport
60
+ end # Mixins
61
+ end # DoorkeeperSsoClient
@@ -1,3 +1,3 @@
1
1
  module DoorkeeperSsoClient
2
- VERSION = "0.4.3"
2
+ VERSION = "0.4.5"
3
3
  end
@@ -89,6 +89,13 @@ RSpec.describe "DoorkeeperSsoClient::Mixins::Devise::ControllerHelpers DeviseHoo
89
89
  expect(controller.session['passport_id']).to eq passport.uid
90
90
  end
91
91
  end
92
+
93
+ context "no scope" do
94
+ it "sign_out_all_scopes if nil passed" do
95
+ expect(controller).to receive(:sign_out_all_scopes)
96
+ sign_out
97
+ end
98
+ end
92
99
  end
93
100
 
94
101
  describe "#sign_out_all_scopes" do
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.3
4
+ version: 0.4.5
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-20 00:00:00.000000000 Z
11
+ date: 2015-07-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: omniauth
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: 1.3.1
69
+ - !ruby/object:Gem::Dependency
70
+ name: rest-client
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 2.0.0.rc1
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 2.0.0.rc1
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: rails
71
85
  requirement: !ruby/object:Gem::Requirement
@@ -150,6 +164,20 @@ dependencies:
150
164
  - - "~>"
151
165
  - !ruby/object:Gem::Version
152
166
  version: '0.18'
167
+ - !ruby/object:Gem::Dependency
168
+ name: mongoid
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - "~>"
172
+ - !ruby/object:Gem::Version
173
+ version: '3'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - "~>"
179
+ - !ruby/object:Gem::Version
180
+ version: '3'
153
181
  - !ruby/object:Gem::Dependency
154
182
  name: rspec-rails
155
183
  requirement: !ruby/object:Gem::Requirement
@@ -318,6 +346,8 @@ files:
318
346
  - lib/doorkeeper_sso_client/mixins.rb
319
347
  - lib/doorkeeper_sso_client/mixins/devise/controller_helpers.rb
320
348
  - lib/doorkeeper_sso_client/mixins/devise/test_helpers.rb
349
+ - lib/doorkeeper_sso_client/mixins/mongoid/passport.rb
350
+ - lib/doorkeeper_sso_client/mixins/passport_base.rb
321
351
  - lib/doorkeeper_sso_client/passport_verifier.rb
322
352
  - lib/doorkeeper_sso_client/version.rb
323
353
  - lib/doorkeeper_sso_client/warden/hooks/after_fetch.rb