omniauth-gate 0.3.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 +7 -0
- data/lib/gate/user.rb +44 -0
- data/lib/gate/warden.rb +37 -0
- data/lib/omniauth-gate.rb +3 -0
- metadata +144 -0
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
|
data/lib/gate/warden.rb
ADDED
@@ -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
|
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: []
|