cul_omniauth 0.5.1 → 0.5.2

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: c61a80d8b694720517e45c004770acf8bfa5d1ab
4
- data.tar.gz: ba3dec1e16ff45127e6f2dd5b6e40c51f679aacc
3
+ metadata.gz: bf19c3f3c7ecdf7bb405d29f7d2c593c190752ef
4
+ data.tar.gz: b67f3c701be26d95141e7c616346796f192c3886
5
5
  SHA512:
6
- metadata.gz: 37c0e2aa4045bb96de86c0e4a098a169bb138bd46d49741f4fe4c9f085290fe425b7fa2436eafac785ca85b5089bc3277cd19aaf3473dadac229a39e80471fd5
7
- data.tar.gz: d33ea623afc2dd57d7b64d423eb3e73936e38ac0a84ffc081959c1e862a3ae79c8e96e2d51f9de2ff7fe6fc8ab510f9bbee92558421b6fa40eb273a1b18678d7
6
+ metadata.gz: f28759221aae5a03b598b7d2c1a8df2da34471434d3991b7f84af6bf0a9930c1fa109a5a4ec9e7e5be1b75e97412070c3c81607f45cfc69f3acccdfa75771ff3
7
+ data.tar.gz: 340ee56f8116272c7937ad6c80ac7bc25b444aaa4f5b6ea94523a597a20cac77c10753dc8d54a40aa5e708825ef538e6be43bece722c88ecf06a4146aabfa58f
@@ -5,17 +5,21 @@ module Cul::Omniauth::Abilities
5
5
  ARRAY = [].freeze
6
6
  end
7
7
  def initialize(user=nil, opts={})
8
- @user = user || User.new
9
- roles = opts[:roles] || Empty::HASH
10
8
  if user
9
+ @user = user
10
+ opts = {user_id: user.uid}.merge(opts)
11
+ else
12
+ @user = User.new
13
+ end
14
+ roles = opts[:roles] || Empty::HASH
15
+ if @user
11
16
  role_permissions = self.class.config.select do |role,config|
12
- roles.include?(role) or user.role?(role)
17
+ roles.include?(role) or @user.role?(role)
13
18
  end
14
- role_permissions[:'*'] = self.class.config.fetch(:*,Empty::HASH)
15
- opts = {user_id: user.uid}.merge(opts)
16
19
  else
17
- role_permissions = {:'*' => self.class.config.fetch(:*,Empty::HASH)}
20
+ role_permissions = {}
18
21
  end
22
+ role_permissions[:'*'] = self.class.config.fetch(:*,Empty::HASH)
19
23
  role_permissions.each do |role, config|
20
24
  config.fetch(:can,Empty::HASH).each do |action, conditions|
21
25
  if conditions.blank?
@@ -1,5 +1,5 @@
1
1
  module Cul
2
2
  module Omniauth
3
- VERSION = "0.5.1"
3
+ VERSION = "0.5.2"
4
4
  end
5
5
  end
@@ -224,3 +224,27 @@ no persisted user for id {"uid"=>"foo", "extra"=>{}}
224
224
  no persisted user for id {"uid"=>"foo", "extra"=>{}}
225
225
  no persisted user for id {"uid"=>"foo", "extra"=>{}}
226
226
  no persisted user for id {"uid"=>"foo", "extra"=>{}}
227
+ no persisted user for id {"uid"=>"foo", "extra"=>{}}
228
+ no persisted user for id {"uid"=>"foo", "extra"=>{}}
229
+ no persisted user for id {"uid"=>"foo", "extra"=>{}}
230
+ no persisted user for id {"uid"=>"foo", "extra"=>{}}
231
+ no persisted user for id {"uid"=>"foo", "extra"=>{}}
232
+ no persisted user for id {"uid"=>"foo", "extra"=>{}}
233
+ no persisted user for id {"uid"=>"foo", "extra"=>{}}
234
+ no persisted user for id {"uid"=>"foo", "extra"=>{}}
235
+ no persisted user for id {"uid"=>"foo", "extra"=>{}}
236
+ no persisted user for id {"uid"=>"foo", "extra"=>{}}
237
+ no persisted user for id {"uid"=>"foo", "extra"=>{}}
238
+ no persisted user for id {"uid"=>"foo", "extra"=>{}}
239
+ no persisted user for id {"uid"=>"foo", "extra"=>{}}
240
+ no persisted user for id {"uid"=>"foo", "extra"=>{}}
241
+ no persisted user for id {"uid"=>"foo", "extra"=>{}}
242
+ no persisted user for id {"uid"=>"foo", "extra"=>{}}
243
+ no persisted user for id {"uid"=>"foo", "extra"=>{}}
244
+ no persisted user for id {"uid"=>"foo", "extra"=>{}}
245
+ no persisted user for id {"uid"=>"foo", "extra"=>{}}
246
+ no persisted user for id {"uid"=>"foo", "extra"=>{}}
247
+ no persisted user for id {"uid"=>"foo", "extra"=>{}}
248
+ no persisted user for id {"uid"=>"foo", "extra"=>{}}
249
+ no persisted user for id {"uid"=>"foo", "extra"=>{}}
250
+ no persisted user for id {"uid"=>"foo", "extra"=>{}}
@@ -163,4 +163,30 @@ describe Cul::Omniauth::Abilities do
163
163
  end
164
164
  end
165
165
  end
166
+
167
+ context "with no user" do
168
+ let(:current_user) { nil }
169
+ let(:rules) do
170
+ YAML.load(fixture('test/role_config/members.yml').read)['_all_environments']
171
+ end
172
+ before do
173
+ Ability.instance_variable_set :@role_proxy_config, symbolize_hash_keys(rules)
174
+ rig.instance_variable_set :@current_ability, nil
175
+ end
176
+ after do
177
+ Ability.instance_variable_set :@role_proxy_config, nil
178
+ end
179
+ subject do
180
+ rig.current_ability
181
+ end
182
+ it "has abilities of *" do
183
+ expect(subject.can? :index, proxy).to be
184
+ end
185
+ it "has abilities of roles with member *" do
186
+ expect(subject.can? :download, proxy).to be
187
+ end
188
+ it "doesn't have unexpected abilities" do
189
+ expect(subject.can? :update, proxy).not_to be
190
+ end
191
+ end
166
192
  end
data/spec/spec_helper.rb CHANGED
@@ -61,4 +61,5 @@ class User
61
61
  def self.devise(*args); end
62
62
  def persisted?; persisted; end
63
63
  include Cul::Omniauth::Users
64
+ include Cul::Omniauth::Users::ConfiguredRoles
64
65
  end
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.5.1
4
+ version: 0.5.2
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-04 00:00:00.000000000 Z
11
+ date: 2015-10-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails