omniauth-gate 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: f39ba26b91715230cf7f883bbd1f1f6a16613860
4
+ data.tar.gz: 0cfa9a56b6460045936fa173bfbcb777218aaac3
5
+ SHA512:
6
+ metadata.gz: f6f375d4244a76537cf5d0449fca407722922c416339132b6f1b93dd299cad75de39c209156db3fd8974268cecb7c17bcc980bb93fcc256304a035bf2c1d7374
7
+ data.tar.gz: 0bf2bd0e15585bb579a14ae94565f02e1d1355c347358f7b4ae74ecc3cd27009262a99aa1b93eb57ec9b59544ac3202fce01b2d36ced6c8bb00d0a40f3566180
data/lib/gate/user.rb ADDED
@@ -0,0 +1,44 @@
1
+ require 'virtus'
2
+
3
+ module Gate
4
+ class User
5
+ include ::Virtus.model
6
+
7
+ # Directly from User
8
+ attribute :id, Integer
9
+ attribute :name, String
10
+ attribute :rights, Array[Symbol]
11
+ attribute :avatar_url, String
12
+ attribute :locale, Symbol
13
+ attribute :time_zone, String
14
+
15
+ # Derived from User
16
+ attribute :state, String
17
+
18
+ # From Passport
19
+ attribute :passport_id, String
20
+ attribute :passport_secret, String
21
+
22
+ # Injected by Gate
23
+ attribute :internal, Boolean
24
+ attribute :password_expires_soon, Boolean
25
+ attribute :password_expired, Boolean
26
+
27
+ def verified!
28
+ @verified = true
29
+ end
30
+
31
+ def verified?
32
+ !!@verified
33
+ end
34
+
35
+ def unverified?
36
+ !verified?
37
+ end
38
+
39
+ def external?
40
+ !internal?
41
+ end
42
+
43
+ end
44
+ end
@@ -0,0 +1,37 @@
1
+ require 'warden'
2
+ require 'gate/warden/rack_augmentor'
3
+ require 'gate/warden/passport_verifier'
4
+
5
+ module Gate
6
+ module Warden
7
+
8
+ def self.activate_rack_augmentation(scope: nil)
9
+ ::Warden::Manager.after_fetch do |user, warden, options|
10
+ begin
11
+ logger.debug { 'Warden :after_fetch hook delegates to RackAugmentor...' }
12
+ ::Gate::Warden::RackAugmentor.new(user: user, warden: warden, options: options, scope: scope).call
13
+
14
+ rescue => exception
15
+ Trouble.notify exception
16
+ end
17
+ end
18
+ end
19
+
20
+ def self.activate_passport_verification(scope: nil, not_if: nil)
21
+ ::Warden::Manager.after_fetch do |user, warden, options|
22
+ begin
23
+ if not_if.present? && user.respond_to?(not_if) && user.send(not_if)
24
+ logger.info { "Warden :after_fetch hook skips PassportVerifier because user instance responds positively to #{not_if.inspect}" }
25
+ else
26
+ logger.debug { 'Warden :after_fetch hook delegates to PassportVerifier...' }
27
+ ::Gate::Warden::PassportVerifier.new(user: user, warden: warden, options: options, scope: scope).call
28
+ end
29
+
30
+ rescue => exception
31
+ Trouble.notify exception
32
+ end
33
+ end
34
+ end
35
+
36
+ end
37
+ end
@@ -0,0 +1,3 @@
1
+ require 'omniauth/strategies/gate'
2
+ require 'gate/warden'
3
+ require 'gate/user'
metadata ADDED
@@ -0,0 +1,144 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: omniauth-gate
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.3
5
+ platform: ruby
6
+ authors:
7
+ - bukowskis
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-01-25 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: omniauth-oauth2
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: warden
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: trouble
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: meter
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: virtus
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: httparty
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: signature
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ description: Gate is the single-sign-on provider of Bukowskis Employees. Provides
112
+ an OmniAuth Strategy and Warden hooks for session verification.
113
+ email:
114
+ executables: []
115
+ extensions: []
116
+ extra_rdoc_files: []
117
+ files:
118
+ - lib/gate/user.rb
119
+ - lib/gate/warden.rb
120
+ - lib/omniauth-gate.rb
121
+ homepage: http://github.com/bukowskis/gate
122
+ licenses: []
123
+ metadata: {}
124
+ post_install_message:
125
+ rdoc_options: []
126
+ require_paths:
127
+ - lib
128
+ required_ruby_version: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ version: '0'
133
+ required_rubygems_version: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - ">="
136
+ - !ruby/object:Gem::Version
137
+ version: '0'
138
+ requirements: []
139
+ rubyforge_project:
140
+ rubygems_version: 2.2.2
141
+ signing_key:
142
+ specification_version: 4
143
+ summary: Gate is the single-sign-on provider of Bukowskis Employees.
144
+ test_files: []