cul_omniauth 0.4.3 → 0.5.0
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 +4 -4
- data/app/controllers/concerns/cul/omniauth/callbacks.rb +2 -1
- data/app/models/concerns/cul/omniauth/users/configured_roles.rb +12 -0
- data/lib/cul/omniauth/version.rb +1 -1
- data/spec/dummy/log/test.log +99 -0
- data/spec/lib/cul/omniauth/callbacks_spec.rb +15 -0
- data/spec/lib/cul/omniauth/users/configured_roles_spec.rb +44 -0
- data/spec/spec_helper.rb +4 -0
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b8ba38b1d154bb45319aa7a7b320feebbd782d98
|
4
|
+
data.tar.gz: 3ff2f174925240d120e8787ce5b3074662b8e7f0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b93f0f9c6c8ba0ea242716e8fbe6d87086bb85a562f29b88eedabdeb16f6fabbabcc8a4b37696d29b07dbb031aac976543d0bf00b9b7ac4f052a347e6baa1c80
|
7
|
+
data.tar.gz: e1cb942dbfb5c8dd68e22d82a433dc0f355df74b5708d079668d920efed3c5088a7543848ea41cbc379fa260f332565aa53599d437140d0ed048b05576a5b4fa
|
@@ -28,7 +28,8 @@ module Cul::Omniauth::Callbacks
|
|
28
28
|
affiliations(@current_user,affils)
|
29
29
|
session["devise.roles"] = affils
|
30
30
|
if @current_user && @current_user.persisted?
|
31
|
-
|
31
|
+
message = I18n.t "devise.omniauth_callbacks.success", kind: auth_type
|
32
|
+
flash[:notice] = message unless message.blank?
|
32
33
|
sign_in_and_redirect @current_user, :event => :authentication
|
33
34
|
else
|
34
35
|
reason = @current_user ? 'no persisted user for id' : 'no uid in token'
|
@@ -0,0 +1,12 @@
|
|
1
|
+
module Cul::Omniauth::Users::ConfiguredRoles
|
2
|
+
extend ActiveSupport::Concern
|
3
|
+
def role? role_sym
|
4
|
+
super || begin
|
5
|
+
found = false
|
6
|
+
found = role_members(role_sym).detect {|member| self.role?(member.to_sym)}
|
7
|
+
end
|
8
|
+
end
|
9
|
+
def role_members(role_sym)
|
10
|
+
Ability.config.fetch(role_sym.to_sym,{}).fetch(:members,[])
|
11
|
+
end
|
12
|
+
end
|
data/lib/cul/omniauth/version.rb
CHANGED
data/spec/dummy/log/test.log
CHANGED
@@ -122,3 +122,102 @@ no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
|
122
122
|
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
123
123
|
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
124
124
|
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
125
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
126
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
127
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
128
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
129
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
130
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
131
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
132
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
133
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
134
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
135
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
136
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
137
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
138
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
139
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
140
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
141
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
142
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
143
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
144
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
145
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
146
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
147
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
148
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
149
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
150
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
151
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
152
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
153
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
154
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
155
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
156
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
157
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
158
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
159
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
160
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
161
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
162
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
163
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
164
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
165
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
166
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
167
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
168
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
169
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
170
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
171
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
172
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
173
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
174
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
175
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
176
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
177
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
178
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
179
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
180
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
181
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
182
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
183
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
184
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
185
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
186
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
187
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
188
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
189
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
190
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
191
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
192
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
193
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
194
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
195
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
196
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
197
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
198
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
199
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
200
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
201
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
202
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
203
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
204
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
205
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
206
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
207
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
208
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
209
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
210
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
211
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
212
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
213
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
214
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
215
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
216
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
217
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
218
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
219
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
220
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
221
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
222
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
223
|
+
no persisted user for id {"uid"=>"foo", "extra"=>{}}
|
@@ -59,6 +59,21 @@ describe Cul::Omniauth::Callbacks do
|
|
59
59
|
subject.send method.downcase.to_sym
|
60
60
|
expect(rig.flash[:notice]).to be
|
61
61
|
end
|
62
|
+
context "and success translation is empty" do
|
63
|
+
before do
|
64
|
+
I18n.load_path.unshift fixture_path(File.join('test', 'locales', 'translation.en.yml'))
|
65
|
+
I18n.backend.reload!
|
66
|
+
end
|
67
|
+
after do
|
68
|
+
I18n.load_path.shift
|
69
|
+
I18n.backend.reload!
|
70
|
+
end
|
71
|
+
it do
|
72
|
+
is_expected.to receive(:sign_in_and_redirect)
|
73
|
+
subject.send method.downcase.to_sym
|
74
|
+
expect(rig.flash[:notice]).not_to be
|
75
|
+
end
|
76
|
+
end
|
62
77
|
context "no current_user" do
|
63
78
|
before do
|
64
79
|
rig.instance_variable_set :@current_user, nil
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Cul::Omniauth::Users::ConfiguredRoles do
|
4
|
+
|
5
|
+
it do
|
6
|
+
is_expected.to be_a Module
|
7
|
+
end
|
8
|
+
context "is included" do
|
9
|
+
let(:uid) { 'foo' }
|
10
|
+
let(:rules) do
|
11
|
+
YAML.load(fixture('test/role_config/members.yml').read)['_all_environments']
|
12
|
+
end
|
13
|
+
let(:test_class) {
|
14
|
+
c = Class.new(User)
|
15
|
+
c.class_eval do
|
16
|
+
attr_accessor :request, :flash, :session
|
17
|
+
include Cul::Omniauth::Users::ConfiguredRoles
|
18
|
+
end
|
19
|
+
c
|
20
|
+
}
|
21
|
+
|
22
|
+
before do
|
23
|
+
Ability.instance_variable_set :@role_proxy_config, symbolize_hash_keys(rules)
|
24
|
+
end
|
25
|
+
|
26
|
+
after do
|
27
|
+
Ability.instance_variable_set :@role_proxy_config, nil
|
28
|
+
end
|
29
|
+
|
30
|
+
subject { test_class.new }
|
31
|
+
|
32
|
+
context "a role as ad-hoc members" do
|
33
|
+
it 'should find memberships one level removed' do
|
34
|
+
expect(subject.role? 'one_level').to be
|
35
|
+
end
|
36
|
+
it 'should find memberships several levels removed' do
|
37
|
+
expect(subject.role? 'three_level').to be
|
38
|
+
end
|
39
|
+
it 'should still return false for other roles' do
|
40
|
+
expect(subject.role? 'none_level').not_to be
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -28,6 +28,10 @@ if ActiveSupport::TestCase.method_defined?(:fixture_path=)
|
|
28
28
|
ActiveSupport::TestCase.fixture_path = File.expand_path("../fixtures", __FILE__)
|
29
29
|
end
|
30
30
|
|
31
|
+
def fixture_path(filename)
|
32
|
+
path = File.join(File.dirname(__FILE__),'..','fixtures',filename)
|
33
|
+
end
|
34
|
+
|
31
35
|
def fixture(filename, mode="r")
|
32
36
|
path = File.join(File.dirname(__FILE__),'..','fixtures',filename)
|
33
37
|
if block_given?
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cul_omniauth
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- barmintor
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-09-
|
11
|
+
date: 2015-09-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -113,6 +113,7 @@ files:
|
|
113
113
|
- app/helpers/cul/omniauth/application_helper.rb
|
114
114
|
- app/models/concerns/cul/omniauth/abilities.rb
|
115
115
|
- app/models/concerns/cul/omniauth/users.rb
|
116
|
+
- app/models/concerns/cul/omniauth/users/configured_roles.rb
|
116
117
|
- app/views/layouts/cul/omniauth/application.html.erb
|
117
118
|
- config/locales/cul_omniauth.en.yml
|
118
119
|
- config/routes.rb
|
@@ -170,6 +171,7 @@ files:
|
|
170
171
|
- spec/lib/cul/omniauth/abilities_spec.rb
|
171
172
|
- spec/lib/cul/omniauth/callbacks_spec.rb
|
172
173
|
- spec/lib/cul/omniauth/remote_ip_ability_spec.rb
|
174
|
+
- spec/lib/cul/omniauth/users/configured_roles_spec.rb
|
173
175
|
- spec/lib/cul/omniauth/users_spec.rb
|
174
176
|
- spec/lib/omni_auth/strategies/saml/service_ticket_validator_spec.rb
|
175
177
|
- spec/lib/omni_auth/strategies/wind/service_ticket_validator_spec.rb
|
@@ -240,6 +242,7 @@ test_files:
|
|
240
242
|
- spec/lib/cul/omniauth/abilities_spec.rb
|
241
243
|
- spec/lib/cul/omniauth/callbacks_spec.rb
|
242
244
|
- spec/lib/cul/omniauth/remote_ip_ability_spec.rb
|
245
|
+
- spec/lib/cul/omniauth/users/configured_roles_spec.rb
|
243
246
|
- spec/lib/cul/omniauth/users_spec.rb
|
244
247
|
- spec/lib/omni_auth/strategies/saml/service_ticket_validator_spec.rb
|
245
248
|
- spec/lib/omni_auth/strategies/wind/service_ticket_validator_spec.rb
|