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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a7d79b0f43eeca5c75a633f01fe939ddcc798e5a
4
- data.tar.gz: a09213d0e00ca9642955507fba71d1e940fbcc30
3
+ metadata.gz: b8ba38b1d154bb45319aa7a7b320feebbd782d98
4
+ data.tar.gz: 3ff2f174925240d120e8787ce5b3074662b8e7f0
5
5
  SHA512:
6
- metadata.gz: 977bed10ff96bfcc48668b99313076c2267bf8023071709be49d8d51a2de37317e1dc3bfe2ed00d065b8bd6f84658be2c7ff63623a50c50d3db18f9ff651ccbd
7
- data.tar.gz: bc39d14929e69cbd30e50aeab065f069c8c14cdf935d484dd48ab1341291468ce97d7e65c35a8396e67e8f86800cec0d058c51d1b1a28d3103b23468d0ef50ef
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
- flash[:notice] = I18n.t "devise.omniauth_callbacks.success", kind: auth_type
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
@@ -1,5 +1,5 @@
1
1
  module Cul
2
2
  module Omniauth
3
- VERSION = "0.4.3"
3
+ VERSION = "0.5.0"
4
4
  end
5
5
  end
@@ -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.3
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-02 00:00:00.000000000 Z
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