doorkeeper_sso 0.4.0 → 0.4.1

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: 1b37cfaca0f0f4f0087f9bd86254651caf44e15a
4
- data.tar.gz: 8fa3028938be6f401d24481df77f61f8e72d4fbd
3
+ metadata.gz: 83cabb56cf16ffc50f1c907b6eca037aaa2ef747
4
+ data.tar.gz: 15314eedab0b7141de0abdf4d3fd096c6d141638
5
5
  SHA512:
6
- metadata.gz: 81c4872126d84a3cfd6629b4f805c7b0c71093ae118c667051874d30744118e9a36cbf5ba12f82f493b1ec331827a85911799210a999d0459274cf54c4a3bca6
7
- data.tar.gz: 1a44dec7b5b5b93820b44e255fcd0b63095f2508e0223b206f9d89b790ee9d50642ab2dfd8bd9b37ff07c8a890ff0a263972ea32babe3dc1713e31060658b992
6
+ metadata.gz: 41a0d41cee7396b3db3f9155871e23d6b65354c1fe45859374b4bb9ab22217da4b972538e6b537a7fca40d03a2072377b1c7e08314b98d3d8d9d5e9ac6bab3e1
7
+ data.tar.gz: d6ae977b71310c72e773dfbabbd8ecb19979a37eb48647031d653e5ac2407cf450e41e2a2745acae21fcc9a5657ab3e14d3cdb178cf4793505b3ed8457152d9c
@@ -18,6 +18,11 @@ module Sso
18
18
  def find_by_access_token(token)
19
19
  find_by(access_token: ::Doorkeeper::AccessToken.by_token(token))
20
20
  end
21
+
22
+ def create_from_access_token(session, token_id)
23
+ return false unless oauth_token = ::Doorkeeper::AccessToken.find_by(id: token_id)
24
+ client = session.find_or_create_by(access_token_id: token_id)
25
+ end
21
26
  end
22
27
 
23
28
  def update_access_token(token)
@@ -0,0 +1,12 @@
1
+ module Doorkeeper
2
+ module OAuth
3
+ module RequestConcern
4
+ include Wisper::Publisher
5
+
6
+ def after_successful_response
7
+ broadcast(:access_token_created, token.id) if respond_to? :token
8
+ super
9
+ end
10
+ end
11
+ end
12
+ end
@@ -1,4 +1,5 @@
1
1
  require "active_model_serializers"
2
+ require "wisper"
2
3
  require "sso"
3
4
 
4
5
  module DoorkeeperSso
@@ -0,0 +1,20 @@
1
+ # Doorkeeper::OAuth::Authorization::Code extensions
2
+ # This module extends oauth authorization classes to publish a wisper event when token is issued
3
+
4
+ module Sso
5
+ module Doorkeeper
6
+ module Authorization
7
+ module CodeMixin
8
+ extend ActiveSupport::Concern
9
+ include ::Sso::Logging
10
+
11
+ def issue_token
12
+ super
13
+ broadcast(:access_grant_created, token.id) if @token.try(:id)
14
+ @token
15
+ end
16
+
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,19 @@
1
+ # Doorkeeper::OAuth::Authorization::Token extensions
2
+ # This module extends oauth authorization classes to publish a wisper event when token is issued
3
+
4
+ module Sso
5
+ module Doorkeeper
6
+ module Authorization
7
+ module CodeMixin
8
+ extend ActiveSupport::Concern
9
+ include ::Sso::Logging
10
+
11
+ def issue_token
12
+ super
13
+ broadcast(:access_token_created, token.id) if @token.try(:id)
14
+ @token
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -5,11 +5,22 @@ module Sso
5
5
  include ::Sso::Logging
6
6
 
7
7
  included do
8
+ around_action :subscribe_to_token_creation, only: [:new, :create]
8
9
  after_action :after_grant_create, only: [:new, :create]
9
10
  end
10
11
 
11
12
  protected
12
13
 
14
+ def subscribe_to_token_creation
15
+ Wisper.subscribe(self) do
16
+ yield
17
+ end
18
+ end
19
+
20
+ def access_token_created(token_id)
21
+ raise "AuthorizationsController#gives token - #{token_id}"
22
+ end
23
+
13
24
  def after_grant_create
14
25
  debug { "AuthorizationsController#Create : after_action" }
15
26
  code_response = authorization.instance_variable_get("@response")
data/lib/sso/engine.rb CHANGED
@@ -26,13 +26,12 @@ module Sso
26
26
  ::Doorkeeper::Application.send(:include, Sso::Doorkeeper::ApplicationMixin)
27
27
  ::Doorkeeper::AccessGrant.send(:include, Sso::Doorkeeper::AccessGrantMixin)
28
28
  ::Doorkeeper::AccessToken.send(:include, Sso::Doorkeeper::AccessTokenMixin)
29
-
30
-
29
+ ::Doorkeeper::OAuth::CodeRequest.send(:include, ::Wisper::Publisher)
31
30
  ::Doorkeeper::TokensController.send(:include, AbstractController::Callbacks)
32
31
  ::Doorkeeper::TokensController.send(:include, Sso::Doorkeeper::TokensControllerMixin)
33
32
  ::Doorkeeper::AuthorizationsController.send(:include, Sso::Doorkeeper::AuthorizationsControllerMixin)
34
33
 
35
- ::Warden::Manager.after_set_user(scope: :user, &::Sso::Warden::Hooks::CreateMasterSession.to_proc)
34
+ ::Warden::Manager.after_set_user(scope: :user, except: :fetch, &::Sso::Warden::Hooks::CreateMasterSession.to_proc)
36
35
  ::Warden::Manager.before_logout(scope: :user, &::Sso::Warden::Hooks::BeforeLogout.to_proc)
37
36
 
38
37
  # TODO : Do we want to ensure that session is always active?
data/lib/sso/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Sso
2
- VERSION = "0.4.0"
2
+ VERSION = "0.4.1"
3
3
  end
data/lib/sso.rb CHANGED
@@ -1,3 +1,4 @@
1
+ require "doorkeeper/oauth/request_concern"
1
2
  require "sso/engine"
2
3
  require "sso/logging"
3
4
  require "sso/warden/support"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: doorkeeper_sso
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
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-08-17 00:00:00.000000000 Z
11
+ date: 2015-09-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: warden
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '2.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: wisper
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '='
46
+ - !ruby/object:Gem::Version
47
+ version: 2.0.0.rc1
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '='
53
+ - !ruby/object:Gem::Version
54
+ version: 2.0.0.rc1
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: rails
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -334,11 +348,14 @@ files:
334
348
  - db/migrate/20150521142926_create_sso_clients.rb
335
349
  - db/migrate/20150521165143_remove_extra_columns_from_sso_sessions.rb
336
350
  - db/migrate/20150603145730_add_pingback_uri_to_doorkeeper_applications.rb
351
+ - lib/doorkeeper/oauth/request_concern.rb
337
352
  - lib/doorkeeper_sso.rb
338
353
  - lib/sso.rb
339
354
  - lib/sso/doorkeeper/access_grant_mixin.rb
340
355
  - lib/sso/doorkeeper/access_token_mixin.rb
341
356
  - lib/sso/doorkeeper/application_mixin.rb
357
+ - lib/sso/doorkeeper/authorization/code_mixin.rb
358
+ - lib/sso/doorkeeper/authorization/token_mixin.rb
342
359
  - lib/sso/doorkeeper/authorizations_controller_mixin.rb
343
360
  - lib/sso/doorkeeper/tokens_controller_mixin.rb
344
361
  - lib/sso/engine.rb
@@ -396,7 +413,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
396
413
  requirements:
397
414
  - - ">="
398
415
  - !ruby/object:Gem::Version
399
- version: '1.9'
416
+ version: '2.0'
400
417
  required_rubygems_version: !ruby/object:Gem::Requirement
401
418
  requirements:
402
419
  - - ">="