doorkeeper_sso_client 0.4.0 → 0.4.1
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c321fedf6edd15e3f7f979602f0979832ba98a84
|
4
|
+
data.tar.gz: 684b0ee93c3c822b2db4ddf903f311286db97db3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 86a14ac441a7d2f158bb72491318c675b17cff4d1559514379a29a24acccf58225b2635ac2fe1bda8ffc9fb69ee9e9b7da6959d4e9f8f9fb28641e88c0186b87
|
7
|
+
data.tar.gz: 5d7f14243016bf9e5d0708c50dc1fec4f004ecc476034aaca2999564c80f87b8b518b3b47d8bc53d355206db3bf183d461de2d3731b533791c3995aefaf3b914
|
@@ -8,28 +8,41 @@ module DoorkeeperSsoClient
|
|
8
8
|
def activate_sso(scope, options = {})
|
9
9
|
class_eval <<-METHODS, __FILE__, __LINE__ + 1
|
10
10
|
def validate_passport!
|
11
|
-
if #{scope}_signed_in?
|
12
|
-
sign_out(current_#{scope})
|
11
|
+
if #{scope}_signed_in? and !current_#{scope}.passports.find_by_uid(session['passport_id']).try(:active?)
|
12
|
+
sign_out(current_#{scope})
|
13
13
|
end
|
14
14
|
return true
|
15
15
|
end
|
16
16
|
|
17
17
|
def after_sign_out_path_for(resource_or_scope)
|
18
|
-
|
19
|
-
if scope == :#{scope}
|
20
|
-
return File.join( DoorkeeperSsoClient::Config.base_uri, "logout?app_id=" + DoorkeeperSsoClient::Config.oauth_client_id.to_s )
|
21
|
-
end
|
18
|
+
return File.join( DoorkeeperSsoClient::Config.base_uri, "logout?app_id=" + DoorkeeperSsoClient::Config.oauth_client_id.to_s ) if scope_match? resource_or_scope, :#{scope}
|
22
19
|
super
|
23
20
|
end
|
24
21
|
|
25
22
|
def after_sign_in_path_for(resource_or_scope)
|
26
|
-
|
27
|
-
if scope == :#{scope}
|
23
|
+
if scope_match? resource_or_scope, :#{scope}
|
28
24
|
request.env['omniauth.origin'] || super
|
29
25
|
else
|
30
26
|
super
|
31
27
|
end
|
32
28
|
end
|
29
|
+
|
30
|
+
def sign_out(resource_or_scope=nil)
|
31
|
+
if scope_match? resource_or_scope, :#{scope}
|
32
|
+
session['passport_id'] = nil
|
33
|
+
end
|
34
|
+
super
|
35
|
+
end
|
36
|
+
|
37
|
+
def sign_out_all_scopes(lock=true)
|
38
|
+
session['passport_id'] = nil
|
39
|
+
super
|
40
|
+
end
|
41
|
+
|
42
|
+
def scope_match?(resource_or_scope, scope_sym)
|
43
|
+
scope = ::Devise::Mapping.find_scope!(resource_or_scope)
|
44
|
+
return scope == scope_sym
|
45
|
+
end
|
33
46
|
METHODS
|
34
47
|
|
35
48
|
unless options[:skip_devise_hook]
|
@@ -70,6 +70,34 @@ RSpec.describe "DoorkeeperSsoClient::Mixins::Devise::ControllerHelpers DeviseHoo
|
|
70
70
|
end
|
71
71
|
end
|
72
72
|
|
73
|
+
|
74
|
+
describe "#sign_out" do
|
75
|
+
context "user scope" do
|
76
|
+
before(:each) { controller.sign_out(:user) }
|
77
|
+
it "removes session['passport_id']" do
|
78
|
+
expect(controller.session['passport_id']).to be_nil
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
context "other_scope" do
|
83
|
+
before(:each) do
|
84
|
+
@request.env["devise.mapping"] = Devise.mappings[:admin]
|
85
|
+
sign_in :admin, Fabricate(:user)
|
86
|
+
controller.sign_out :admin
|
87
|
+
end
|
88
|
+
it "keeps session['passport_id']" do
|
89
|
+
expect(controller.session['passport_id']).to eq passport.uid
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
describe "#sign_out_all_scopes" do
|
95
|
+
before(:each) { controller.sign_out_all_scopes }
|
96
|
+
it "removes session['passport_id']" do
|
97
|
+
expect(controller.session['passport_id']).to be_nil
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
73
101
|
end
|
74
102
|
|
75
103
|
|
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.
|
4
|
+
version: 0.4.1
|
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-
|
11
|
+
date: 2015-07-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: omniauth
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - ">"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '3'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: api-auth
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 1.3.1
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 1.3.1
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: rails
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -108,20 +122,6 @@ dependencies:
|
|
108
122
|
- - "~>"
|
109
123
|
- !ruby/object:Gem::Version
|
110
124
|
version: 0.0.3
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
|
-
name: api-auth
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
114
|
-
requirements:
|
115
|
-
- - "~>"
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: 1.3.1
|
118
|
-
type: :runtime
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
requirements:
|
122
|
-
- - "~>"
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: 1.3.1
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: database_cleaner
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|