id_please 0.5.0 → 0.6.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.
- data/VERSION +1 -1
- data/id_please.gemspec +3 -2
- data/lib/id_please.rb +1 -0
- data/lib/id_please/assignment_map.rb +137 -0
- data/lib/id_please/model_extensions/for_assignment.rb +9 -0
- data/lib/id_please/model_extensions/for_group.rb +2 -77
- data/test/database.yml +2 -2
- data/test/debug.log +155811 -0
- data/test/roles_test.rb +29 -14
- data/test/test_helper.rb +17 -0
- metadata +3 -2
data/test/roles_test.rb
CHANGED
@@ -280,9 +280,10 @@ class RolesTest < ActiveSupport::TestCase
|
|
280
280
|
assert_same_elements @user1.groups, [@group1, @group2, @group3, @group4]
|
281
281
|
assert_same_elements @user2.groups, [@group2, @group4]
|
282
282
|
|
283
|
-
assert_same_elements @group4.children, [@group2, @group1, @user1, @user2]
|
283
|
+
assert_same_elements @group4.children, [@group2, @group1, @user1, @user2, @user3]
|
284
284
|
assert_same_elements @group2.children, [@group1, @user1, @user2]
|
285
|
-
|
285
|
+
assert_same_elements @group2.children(:nested => false), [@group1, @user2]
|
286
|
+
|
286
287
|
assert @group4.accepts_role?(:member, @user1)
|
287
288
|
assert @group2.accepts_role?(:member, @user1)
|
288
289
|
|
@@ -291,30 +292,23 @@ class RolesTest < ActiveSupport::TestCase
|
|
291
292
|
assert_false @group4.accepts_role?(:member, @user1, :check_groups => false)
|
292
293
|
end
|
293
294
|
|
294
|
-
should "be able to filter children based on roles" do
|
295
|
-
assert_same_elements @group4.children(), [@group2, @group1, @user1, @user2]
|
296
|
-
assert_same_elements @group4.children(:roles => :any), [@group2, @group1, @user1, @user2, @user3]
|
297
|
-
assert_same_elements @group4.children(:roles => [:member]), [@group2, @group1, @user1, @user2]
|
298
|
-
assert_same_elements @group4.children(:roles => [:owner]), [@user3]
|
299
|
-
end
|
300
|
-
|
301
295
|
should "be able to display hashes of subject permissions" do
|
302
|
-
assert_equal @group4.children(:
|
296
|
+
assert_equal @group4.children(:view => :subject_hash), {@group2 => [:member], @group1 => [:member], @user1 => [:member], @user2 => [:member], @user3 => [:owner]}
|
303
297
|
end
|
304
298
|
|
305
299
|
should "display a list of roles, or a hash of roles to users" do
|
306
|
-
assert_same_elements @group4.children(:
|
300
|
+
assert_same_elements @group4.children(:view => :roles), [:member, :owner]
|
307
301
|
|
308
|
-
role_hash = @group4.children(:
|
302
|
+
role_hash = @group4.children(:view => :role_hash)
|
309
303
|
assert_same_elements role_hash[:member], [@group1, @group2, @user1, @user2]
|
310
304
|
assert_same_elements role_hash[:owner], [@user3]
|
311
305
|
end
|
312
306
|
|
313
307
|
should "display a hash of roles to users with the relevant groups attached" do
|
314
|
-
role_with_assignments = @group4.children(:
|
308
|
+
role_with_assignments = @group4.children(:view => :role_with_assignments)
|
315
309
|
assert_equal role_with_assignments[:owner], {@user3 => [@group4]}
|
316
310
|
assert_same_elements role_with_assignments[:member].keys, [@user1, @user2, @group1, @group2]
|
317
|
-
|
311
|
+
assert_same_elements_in_hash role_with_assignments[:member], {@group2 => [@group4], @group1 => [@group2], @user1 => [@group1, @group4], @user2 => [@group2]}
|
318
312
|
|
319
313
|
end
|
320
314
|
|
@@ -340,6 +334,27 @@ class RolesTest < ActiveSupport::TestCase
|
|
340
334
|
|
341
335
|
end
|
342
336
|
|
337
|
+
context "given a group which is both an member and an owner" do
|
338
|
+
setup do
|
339
|
+
@user1.in_group!(@group1)
|
340
|
+
@group1.in_group!(@group2)
|
341
|
+
@group1.has_role!(:owner, @group2)
|
342
|
+
end
|
343
|
+
|
344
|
+
should "propagate multiple roles through nested groups" do
|
345
|
+
@user1.has_role?(:owner, @group2)
|
346
|
+
@user1.has_role?(:member, @group2)
|
347
|
+
end
|
348
|
+
|
349
|
+
should "display handle multiple roles propagated through the children function" do
|
350
|
+
assert_same_elements @group2.children(:view => :roles), [:member, :owner]
|
351
|
+
role_hash = @group2.children(:view => :role_hash)
|
352
|
+
|
353
|
+
assert_same_elements role_hash[:member], [@group1, @user1]
|
354
|
+
assert_same_elements role_hash[:owner], [@group1, @user1]
|
355
|
+
end
|
356
|
+
end
|
357
|
+
|
343
358
|
end
|
344
359
|
end
|
345
360
|
|
data/test/test_helper.rb
CHANGED
@@ -42,5 +42,22 @@ module Test::Unit::Assertions
|
|
42
42
|
def assert_false(object, message="")
|
43
43
|
assert_equal(false, object, message)
|
44
44
|
end
|
45
|
+
|
46
|
+
def assert_same_elements_in_hash(hash1, hash2, message = "")
|
47
|
+
assert_kind_of Hash, hash1, message + "First object must be a hash"
|
48
|
+
assert_kind_of Hash, hash2, message + "Second object must be a hash"
|
49
|
+
assert_equal hash1.keys, hash2.keys, "Keys of hashes mismatch"
|
50
|
+
|
51
|
+
hash1.each_pair do |k, v|
|
52
|
+
case v
|
53
|
+
when Hash
|
54
|
+
assert_same_elements_in_hash v,hash2[k], message + "Under key #{k.inspect} "
|
55
|
+
when Array
|
56
|
+
assert_same_elements v, hash2[k], message + "Under key #{k.inspect} "
|
57
|
+
else
|
58
|
+
assert_equal v, hash2[k], message + "Under key #{k.inspect} "
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
45
62
|
end
|
46
63
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: id_please
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Stuart
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-02-
|
12
|
+
date: 2010-02-19 00:00:00 -05:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -71,6 +71,7 @@ files:
|
|
71
71
|
- VERSION
|
72
72
|
- id_please.gemspec
|
73
73
|
- lib/id_please.rb
|
74
|
+
- lib/id_please/assignment_map.rb
|
74
75
|
- lib/id_please/config.rb
|
75
76
|
- lib/id_please/model_extensions.rb
|
76
77
|
- lib/id_please/model_extensions/for_assignment.rb
|