doorkeeper_sso_client 0.4.3 → 0.4.5

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: 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