omniauth-colorgy-oauth2 0.1.2 → 0.1.3

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: 622907600c5f96b24b39d4b42610e28f03bb9ef1
4
- data.tar.gz: 23bb034e4ebfa81208729f41752103107a7a808a
3
+ metadata.gz: 550b9ca1c5c9966734626c78efa3a7f29be9ec1f
4
+ data.tar.gz: 8834455bc5bc5a553dc940c2888f3c41e33a841a
5
5
  SHA512:
6
- metadata.gz: f79bf8602b0019477d02208891eb4dd3cb11d7fd939677b0b62cef9b7e4578e175f456d19226e4f73b4085ba2ab84438eb12bb9b8224b7d87a9f0e34fe065f38
7
- data.tar.gz: 927406a3c0094ae85a137e5563fa8c73444c046d934352bb276b7344385f60e1178a002b791c36aff2db976ce8caf0d74f10756f33a1e76c71841c35334cb80c
6
+ metadata.gz: 01c5bfd083fed47f74d73d94c442f8d9287d62d106042b77ebf64aae5bb675c5d66b688de7210aba0b63206068936c24304a23cc0089e612240fa9f5618f715c
7
+ data.tar.gz: a0e0357e89ea1b3bef5d348c987029156f60375696ff1e7636439910b8374c523ac98a9d833eeae1dec0599426ed3063c4db68258a2b8961e3bf8b38ff55c212
data/README.md CHANGED
@@ -125,7 +125,7 @@ config.omniauth :colorgy, ENV['APP_ID'], ENV['APP_SECRET'],
125
125
 
126
126
  ## Single-Sign On/Off (SSO) Support
127
127
 
128
- _(Optional)_
128
+ _(Optional, only if you want a single sing in/out status synced with Colorgy core.)_
129
129
 
130
130
  The Colorgy SSO system is implemented using **OAuth 2.0** as the authorization protocol and **Sign-on Status Tokens (SST)** as credential of the sign-on status of the user, achieving sign in and out seamlessly controlled by a central server.
131
131
 
@@ -165,6 +165,19 @@ rails g migration add_refreshed_at_to_users refreshed_at:datetime
165
165
  rake db:migrate
166
166
  ```
167
167
 
168
+ Make sure it is updated while each core sign in, usually in `app/models/user.rb`:
169
+
170
+ ```ruby
171
+ def self.from_colorgy(auth)
172
+ # ...
173
+
174
+ user.refreshed_at = Time.now
175
+ user.save!
176
+
177
+ # ...
178
+ end
179
+ ```
180
+
168
181
  Then just include `ColorgyDeviseSSOManager` in your ApplicationController and all the rest is done:
169
182
 
170
183
  ```ruby
@@ -190,6 +203,19 @@ Now that users on your app will be signing in/out synchronizedly with Colorgy co
190
203
  <%= link_to("Log Out", sign_out_url, method: :delete) %>
191
204
  ```
192
205
 
206
+ If SSO functionality needs to be turned off temporary, call the `sso_off!` method at `before_filter` like this:
207
+
208
+ ```ruby
209
+ class ApplicationController < ActionController::Base
210
+ # ...
211
+
212
+ before_filter :sso_off!
213
+
214
+ # ...
215
+ end
216
+ ```
217
+
218
+ The SSO functionality will be disabled automatically in testing environment (`Rails.env.test?`) by the way.
193
219
 
194
220
  ## Development
195
221
 
@@ -4,21 +4,38 @@ module ColorgyDeviseSSOManager
4
4
  extend ActiveSupport::Concern
5
5
 
6
6
  @@sst_verification_method = 'RS256'
7
+ @@sso_enabled = true
7
8
 
8
9
  included do
9
10
  before_filter :verify_sst
11
+ before_action :sign_out_if_needed
10
12
  helper_method :sign_out_url, :logout_url
11
13
  end
12
14
 
13
- # Helpers to get the core sign-out URL
15
+ # Helper to get the core sign-out URL
14
16
  def sign_out_url
15
- "#{core_url}/logout"
17
+ if @@sso_enabled
18
+ "#{core_url}/logout"
19
+ else
20
+ "#{root_path}?logout=true"
21
+ end
16
22
  end
17
23
 
18
24
  def logout_url
19
25
  sign_out_url
20
26
  end
21
27
 
28
+ # Sign the user out if needed
29
+ def sign_out_if_needed
30
+ return unless !@@sso_enabled && params[:logout] == 'true'
31
+ sign_out :user
32
+ end
33
+
34
+ # Turn off SSO
35
+ def sso_off!
36
+ @@sso_enabled = false
37
+ end
38
+
22
39
  private
23
40
 
24
41
  # Getter of the core domain
@@ -66,6 +83,7 @@ module ColorgyDeviseSSOManager
66
83
  def verify_sst
67
84
  # Skip this on test and auth callbacks
68
85
  return if Rails.env.test?
86
+ return unless @@sso_enabled
69
87
  return if controller_name == 'omniauth_callbacks'
70
88
 
71
89
  # Get the sst string from cookie
@@ -1,5 +1,5 @@
1
1
  module OmniAuth
2
2
  module ColorgyOAuth2
3
- VERSION = "0.1.2"
3
+ VERSION = "0.1.3"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omniauth-colorgy-oauth2
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Neson
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-05-05 00:00:00.000000000 Z
11
+ date: 2015-05-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: omniauth