cbac 0.5.4 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (83) hide show
  1. data/Manifest +74 -65
  2. data/README.rdoc +51 -48
  3. data/Rakefile +39 -36
  4. data/cbac.gemspec +31 -31
  5. data/config/cbac/context_roles.rb +21 -0
  6. data/config/cbac/privileges.rb +50 -0
  7. data/context_roles.rb +21 -0
  8. data/init.rb +3 -11
  9. data/lib/cbac.rb +132 -114
  10. data/lib/cbac/cbac_pristine/pristine.rb +134 -134
  11. data/lib/cbac/cbac_pristine/pristine_file.rb +170 -170
  12. data/lib/cbac/cbac_pristine/pristine_permission.rb +193 -193
  13. data/lib/cbac/cbac_pristine/pristine_role.rb +41 -41
  14. data/lib/cbac/config.rb +9 -9
  15. data/lib/cbac/context_role.rb +27 -27
  16. data/lib/cbac/generic_role.rb +5 -5
  17. data/lib/cbac/known_permission.rb +14 -14
  18. data/lib/cbac/membership.rb +3 -3
  19. data/lib/cbac/permission.rb +5 -5
  20. data/lib/cbac/privilege.rb +117 -116
  21. data/lib/cbac/privilege_new_api.rb +56 -56
  22. data/lib/cbac/privilege_set.rb +29 -29
  23. data/lib/cbac/privilege_set_record.rb +6 -6
  24. data/lib/cbac/setup.rb +37 -30
  25. data/{generators → lib/generators}/cbac/USAGE +33 -33
  26. data/lib/generators/cbac/cbac_generator.rb +75 -0
  27. data/{generators/cbac/templates → lib/generators/cbac/copy_files}/config/cbac.pristine +2 -2
  28. data/lib/generators/cbac/copy_files/config/context_roles.rb +17 -0
  29. data/lib/generators/cbac/copy_files/config/privileges.rb +25 -0
  30. data/{generators/cbac/templates → lib/generators/cbac/copy_files}/controllers/generic_roles_controller.rb +30 -30
  31. data/{generators/cbac/templates → lib/generators/cbac/copy_files}/controllers/memberships_controller.rb +22 -22
  32. data/{generators/cbac/templates → lib/generators/cbac/copy_files}/controllers/permissions_controller.rb +61 -61
  33. data/{generators/cbac/templates → lib/generators/cbac/copy_files}/controllers/upgrade_controller.rb +23 -23
  34. data/{generators/cbac/templates → lib/generators/cbac/copy_files}/fixtures/cbac_generic_roles.yml +9 -9
  35. data/{generators/cbac/templates → lib/generators/cbac/copy_files}/fixtures/cbac_memberships.yml +8 -8
  36. data/{generators/cbac/templates → lib/generators/cbac/copy_files}/fixtures/cbac_permissions.yml +8 -8
  37. data/lib/generators/cbac/copy_files/initializers/cbac_config.rb +2 -0
  38. data/{generators/cbac/templates → lib/generators/cbac/copy_files}/migrate/create_cbac_from_scratch.rb +59 -59
  39. data/{generators/cbac/templates → lib/generators/cbac/copy_files}/migrate/create_cbac_upgrade_path.rb +31 -31
  40. data/{generators/cbac/templates → lib/generators/cbac/copy_files}/stylesheets/cbac.css +65 -65
  41. data/{generators/cbac/templates → lib/generators/cbac/copy_files}/tasks/cbac.rake +345 -345
  42. data/{generators/cbac/templates → lib/generators/cbac/copy_files}/views/generic_roles/index.html.erb +58 -58
  43. data/{generators/cbac/templates → lib/generators/cbac/copy_files}/views/layouts/cbac.html.erb +18 -18
  44. data/{generators/cbac/templates → lib/generators/cbac/copy_files}/views/memberships/_update.html.erb +11 -11
  45. data/{generators/cbac/templates → lib/generators/cbac/copy_files}/views/memberships/index.html.erb +23 -22
  46. data/{generators/cbac/templates → lib/generators/cbac/copy_files}/views/permissions/_update_context_role.html.erb +11 -11
  47. data/{generators/cbac/templates → lib/generators/cbac/copy_files}/views/permissions/_update_generic_role.html.erb +11 -11
  48. data/{generators/cbac/templates → lib/generators/cbac/copy_files}/views/permissions/index.html.erb +39 -39
  49. data/{generators/cbac/templates → lib/generators/cbac/copy_files}/views/upgrade/index.html.erb +31 -31
  50. data/nbproject/private/private.properties +3 -0
  51. data/nbproject/private/private.xml +4 -0
  52. data/nbproject/private/rake-d.txt +0 -0
  53. data/nbproject/project.properties +9 -0
  54. data/nbproject/project.xml +16 -0
  55. data/privileges.rb +50 -0
  56. data/rails/init.rb +1 -0
  57. data/spec/cbac_pristine_file_spec.rb +329 -329
  58. data/spec/cbac_pristine_permission_spec.rb +358 -358
  59. data/spec/cbac_pristine_role_spec.rb +85 -85
  60. data/spec/rcov.opts +1 -1
  61. data/spec/spec.opts +4 -4
  62. data/spec/spec_helper.rb +11 -11
  63. data/tasks/cbac.rake +345 -345
  64. data/test/db/test.sqlite3 +0 -0
  65. data/test/fixtures/cbac_generic_roles.yml +9 -9
  66. data/test/fixtures/cbac_memberships.yml +8 -8
  67. data/test/fixtures/cbac_permissions.yml +14 -14
  68. data/test/fixtures/cbac_privilege_set.yml +18 -18
  69. data/test/test_cbac_actions.rb +71 -70
  70. data/test/test_cbac_authorize_context_roles.rb +39 -40
  71. data/test/test_cbac_authorize_generic_roles.rb +36 -37
  72. data/test/test_cbac_context_role.rb +50 -51
  73. data/test/test_cbac_privilege.rb +151 -152
  74. data/test/test_cbac_privilege_set.rb +50 -51
  75. data/test/test_helper.rb +28 -0
  76. metadata +70 -38
  77. data/generators/cbac/cbac_generator.rb +0 -66
  78. data/generators/cbac/templates/config/context_roles.rb +0 -10
  79. data/generators/cbac/templates/config/privileges.rb +0 -30
  80. data/vendor/plugins/cbac/Manifest +0 -60
  81. data/vendor/plugins/cbac/cbac-0.5.3.gem +0 -0
  82. data/vendor/plugins/cbac/cbac.gemspec +0 -31
  83. data/vendor/plugins/cbac/pkg/cbac-0.5.3.gem +0 -0
@@ -1,153 +1,152 @@
1
- require File.expand_path(File.join(File.dirname(__FILE__), '../../../../test/test_helper'))
2
- require 'test/unit'
3
- require 'rubygems'
4
-
5
- # ### Tests the Cbac::Privilege class
6
- #
7
- class CbacPrivilegeTest < ActiveSupport::TestCase
8
- # Setup defines the PrivilegeSet that is being used by all PrivilegeTest
9
- # methods
10
- def setup
11
- PrivilegeSet.add :cbac_privilege, "" unless PrivilegeSet.sets.include?(:cbac_privilege)
12
- PrivilegeSet.add :base_inheritence_privilege, "" unless PrivilegeSet.sets.include?(:base_inheritence_privilege)
13
- end
14
-
15
- # Test adding get and post resources It is possible to add a resource using
16
- # different names for actions. This method also checks if these aliases are
17
- # all operating well.
18
- def test_add_resources
19
- assert_difference("Privilege.get_resources.length", 4, "GET resource was not added.") do
20
- Privilege.resource :cbac_privilege, "add/resources/get/1", :GET
21
- Privilege.resource :cbac_privilege, "add/resources/get/2", :get
22
- Privilege.resource :cbac_privilege, "add/resources/get/3", :g
23
- Privilege.resource :cbac_privilege, "add/resources/get/4", :idempotent
24
- end
25
- assert_difference("Privilege.post_resources.length", 3, "POST resource was not added.") do
26
- Privilege.resource :cbac_privilege, "add/resources/post/1", :POST
27
- Privilege.resource :cbac_privilege, "add/resources/post/2", :post
28
- Privilege.resource :cbac_privilege, "add/resources/post/3", :p
29
- end
30
- end
31
-
32
- # Test the include method for single inheritence
33
- def test_single_inheritence
34
- Privilege.resource :base_inheritence_privilege, "single/inheritence"
35
- Privilege.resource :base_inheritence_privilege, "single/inheritence/post", :post
36
- PrivilegeSet.add :cbac_single_inheritence, "PrivilegeSet for single inheritence test"
37
- Privilege.include :cbac_single_inheritence, :base_inheritence_privilege
38
- result = Privilege.select("single/inheritence", :get)
39
- assert_equal true, result.any? {|set| set.name == "base_inheritence_privilege"}, "Could not find PrivilegeSet (hint: error probably belongs to other test)"
40
- assert_equal true, result.any? {|set| set.name == "cbac_single_inheritence"}, "Single inheritence failure"
41
- result = Privilege.select("single/inheritence/post", :post)
42
- assert_equal true, result.any? {|set| set.name == "cbac_single_inheritence"}, "Single inheritence failure with POST method"
43
- end
44
-
45
- # Test the include method for multiple inheritence
46
- def test_multiple_inheritence
47
- Privilege.resource :base_inheritence_privilege, "multiple/inheritence"
48
- PrivilegeSet.add :base_multiple_inheritence, "parent/ base PrivilegeSet for multiple inheritence test"
49
- PrivilegeSet.add :cbac_multiple_inheritence, "child PrivilegeSet for multiple inheritence test"
50
- Privilege.resource :base_multiple_inheritence, "multiple/inheritence_again"
51
- Privilege.include :cbac_multiple_inheritence, [:base_inheritence_privilege, :base_multiple_inheritence]
52
- result = Privilege.select("multiple/inheritence", :get)
53
- assert_equal true, result.any? {|set| set.name == "base_inheritence_privilege"}, "Could not find PrivilegeSet (hint: error probably belongs to other test)"
54
- assert_equal true, result.any? {|set| set.name == "cbac_multiple_inheritence"}, "Multiple inheritence failure"
55
- result = Privilege.select("multiple/inheritence_again", :get)
56
- assert_equal true, result.any? {|set| set.name == "cbac_multiple_inheritence"}, "Multiple inheritence failure"
57
- end
58
-
59
- # Inheritence must be applied if a resource is added after an inheritence call
60
- def test_inherit_resource_after_declaration
61
- PrivilegeSet.add :cbac_inheritence_after_declaration, "PrivilegeSet for single inheritence test"
62
- # First, we setup the inheritence relation
63
- Privilege.include :cbac_inheritence_after_declaration, :base_inheritence_privilege
64
- # Then, we setup the resource connection
65
- Privilege.resource :base_inheritence_privilege, "inheritence/after/declaration"
66
- Privilege.resource :base_inheritence_privilege, "inheritence/after/declaration/post", :post
67
- # Test
68
- result = Privilege.select("inheritence/after/declaration", :get)
69
- assert_equal true, result.any?{|set| set.name == "base_inheritence_privilege"}, "Could not find PrivilegeSet (hint: error probably belongs to other test)"
70
- assert_equal true, result.any?{|set| set.name == "cbac_inheritence_after_declaration"}, "Resource declaration after inheritence call failed"
71
- result = Privilege.select("inheritence/after/declaration/post", :post)
72
- assert_equal true, result.any?{|set| set.name == "cbac_inheritence_after_declaration"}, "Resource declaration after inheritence call failed with POST method"
73
- end
74
-
75
- # If the inheritence functionality is used with invalid privilege_sets, an ArgumentException must be thrown
76
- def test_inheritence_with_invalid_privilege_sets
77
- assert_raise(ArgumentError) do
78
- Privilege.include :cbac_privilege, :invalid_privilege_set
79
- end
80
- assert_raise(ArgumentError) do
81
- Privilege.include :invalid_privilege_set, :cbac_privilege
82
- end
83
- end
84
-
85
- # If an invalid action is specified, the method must raise an ArgumentError
86
- # exception.
87
- def test_add_incorrect_action
88
- assert_raise(ArgumentError) do
89
- Privilege.resource :cbac_privilege, "add/incorrect/action", :error
90
- end
91
- end
92
-
93
- # If a privilege is added to a non existing PrivilegeSet, an ArgumentError
94
- # exception must occur.
95
- def test_add_resource_to_invalid_privilege_set
96
- assert_raise(ArgumentError) do
97
- Privilege.resource :cbac_privilege_error, "add/resource/to/invalid/privilege/set", :get
98
- end
99
- end
100
-
101
- # Test the Privilege.select method. This method accepts a controller method
102
- # string and an action type It returns the privilegesets that comply with this
103
- # combination The actions post, put and delete are identical. This test aims
104
- # at testing this assumption.
105
- def test_select_correct
106
- Privilege.resource :cbac_privilege, "select/correct/get", :get
107
- Privilege.resource :cbac_privilege, "select/correct/post", :post
108
- Privilege.resource :cbac_privilege, "select/correct/put", :post
109
- Privilege.resource :cbac_privilege, "select/correct/delete", :post
110
- assert_equal 1, Privilege.select("select/correct/get", :get).length
111
- [:post, :put, :delete].each do |action|
112
- assert_equal 1, Privilege.select("select/correct/post", action).length
113
- assert_equal 1, Privilege.select("select/correct/put", action).length
114
- assert_equal 1, Privilege.select("select/correct/delete", action).length
115
- end
116
- end
117
-
118
- def test_exception()
119
- begin
120
- yield
121
- rescue Exception => e
122
- return e.message
123
- end
124
- raise "No exception was thrown"
125
- end
126
-
127
- # test selecting an incorrect action type
128
- def test_select_incorrect_action_types
129
- controller_method = "select/incorrect/action/types/get"
130
- Privilege.resource :cbac_privilege, controller_method, :get
131
- Privilege.select(controller_method, :get)
132
- assert_match(/Incorrect action_type/, test_exception { Privilege.select(controller_method, :error) })
133
- end
134
-
135
- # If a user asks for the wrong action_type (e.g. a request is made for 'get'
136
- # but there are only 'post' privileges or vica versa) the system will throw an
137
- # exception as expected, but the system will also hint at the possibility of
138
- # messing up get and post.
139
- def test_select_the_other_action_type
140
- controller_method = "select/the/other/action/type/get"
141
- Privilege.resource :cbac_privilege, controller_method, :get
142
- assert_match(/PrivilegeSets only exist for other action/, test_exception { Privilege.select(controller_method, :post) })
143
- end
144
-
145
- # Trying to find privileges for a set that doesn't exist, should result in an
146
- # exception
147
- def test_select_could_not_find_any_privilegeset
148
- controller_method = "select/could/not/find/any/privilegeset/get"
149
- assert_raise(RuntimeError) do
150
- Privilege.select(controller_method, :post)
151
- end
152
- end
1
+ # Copyright 2010 Bert Meerman
2
+ require File.expand_path(File.join(File.dirname(__FILE__), 'test_helper'))
3
+
4
+ # ### Tests the Cbac::Privilege class
5
+ #
6
+ class CbacPrivilegeTest < ActiveSupport::TestCase
7
+ # Setup defines the PrivilegeSet that is being used by all PrivilegeTest
8
+ # methods
9
+ def setup
10
+ PrivilegeSet.add :cbac_privilege, "" unless PrivilegeSet.sets.include?(:cbac_privilege)
11
+ PrivilegeSet.add :base_inheritence_privilege, "" unless PrivilegeSet.sets.include?(:base_inheritence_privilege)
12
+ end
13
+
14
+ # Test adding get and post resources It is possible to add a resource using
15
+ # different names for actions. This method also checks if these aliases are
16
+ # all operating well.
17
+ def test_add_resources
18
+ assert_difference("Privilege.get_resources.length", 4, "GET resource was not added.") do
19
+ Privilege.resource :cbac_privilege, "add/resources/get/1", :GET
20
+ Privilege.resource :cbac_privilege, "add/resources/get/2", :get
21
+ Privilege.resource :cbac_privilege, "add/resources/get/3", :g
22
+ Privilege.resource :cbac_privilege, "add/resources/get/4", :idempotent
23
+ end
24
+ assert_difference("Privilege.post_resources.length", 3, "POST resource was not added.") do
25
+ Privilege.resource :cbac_privilege, "add/resources/post/1", :POST
26
+ Privilege.resource :cbac_privilege, "add/resources/post/2", :post
27
+ Privilege.resource :cbac_privilege, "add/resources/post/3", :p
28
+ end
29
+ end
30
+
31
+ # Test the include method for single inheritence
32
+ def test_single_inheritence
33
+ Privilege.resource :base_inheritence_privilege, "single/inheritence"
34
+ Privilege.resource :base_inheritence_privilege, "single/inheritence/post", :post
35
+ PrivilegeSet.add :cbac_single_inheritence, "PrivilegeSet for single inheritence test"
36
+ Privilege.include :cbac_single_inheritence, :base_inheritence_privilege
37
+ result = Privilege.select("single/inheritence", :get)
38
+ assert_equal true, result.any? {|set| set.name == "base_inheritence_privilege"}, "Could not find PrivilegeSet (hint: error probably belongs to other test)"
39
+ assert_equal true, result.any? {|set| set.name == "cbac_single_inheritence"}, "Single inheritence failure"
40
+ result = Privilege.select("single/inheritence/post", :post)
41
+ assert_equal true, result.any? {|set| set.name == "cbac_single_inheritence"}, "Single inheritence failure with POST method"
42
+ end
43
+
44
+ # Test the include method for multiple inheritence
45
+ def test_multiple_inheritence
46
+ Privilege.resource :base_inheritence_privilege, "multiple/inheritence"
47
+ PrivilegeSet.add :base_multiple_inheritence, "parent/ base PrivilegeSet for multiple inheritence test"
48
+ PrivilegeSet.add :cbac_multiple_inheritence, "child PrivilegeSet for multiple inheritence test"
49
+ Privilege.resource :base_multiple_inheritence, "multiple/inheritence_again"
50
+ Privilege.include :cbac_multiple_inheritence, [:base_inheritence_privilege, :base_multiple_inheritence]
51
+ result = Privilege.select("multiple/inheritence", :get)
52
+ assert_equal true, result.any? {|set| set.name == "base_inheritence_privilege"}, "Could not find PrivilegeSet (hint: error probably belongs to other test)"
53
+ assert_equal true, result.any? {|set| set.name == "cbac_multiple_inheritence"}, "Multiple inheritence failure"
54
+ result = Privilege.select("multiple/inheritence_again", :get)
55
+ assert_equal true, result.any? {|set| set.name == "cbac_multiple_inheritence"}, "Multiple inheritence failure"
56
+ end
57
+
58
+ # Inheritence must be applied if a resource is added after an inheritence call
59
+ def test_inherit_resource_after_declaration
60
+ PrivilegeSet.add :cbac_inheritence_after_declaration, "PrivilegeSet for single inheritence test"
61
+ # First, we setup the inheritence relation
62
+ Privilege.include :cbac_inheritence_after_declaration, :base_inheritence_privilege
63
+ # Then, we setup the resource connection
64
+ Privilege.resource :base_inheritence_privilege, "inheritence/after/declaration"
65
+ Privilege.resource :base_inheritence_privilege, "inheritence/after/declaration/post", :post
66
+ # Test
67
+ result = Privilege.select("inheritence/after/declaration", :get)
68
+ assert_equal true, result.any?{|set| set.name == "base_inheritence_privilege"}, "Could not find PrivilegeSet (hint: error probably belongs to other test)"
69
+ assert_equal true, result.any?{|set| set.name == "cbac_inheritence_after_declaration"}, "Resource declaration after inheritence call failed"
70
+ result = Privilege.select("inheritence/after/declaration/post", :post)
71
+ assert_equal true, result.any?{|set| set.name == "cbac_inheritence_after_declaration"}, "Resource declaration after inheritence call failed with POST method"
72
+ end
73
+
74
+ # If the inheritence functionality is used with invalid privilege_sets, an ArgumentException must be thrown
75
+ def test_inheritence_with_invalid_privilege_sets
76
+ assert_raise(ArgumentError) do
77
+ Privilege.include :cbac_privilege, :invalid_privilege_set
78
+ end
79
+ assert_raise(ArgumentError) do
80
+ Privilege.include :invalid_privilege_set, :cbac_privilege
81
+ end
82
+ end
83
+
84
+ # If an invalid action is specified, the method must raise an ArgumentError
85
+ # exception.
86
+ def test_add_incorrect_action
87
+ assert_raise(ArgumentError) do
88
+ Privilege.resource :cbac_privilege, "add/incorrect/action", :error
89
+ end
90
+ end
91
+
92
+ # If a privilege is added to a non existing PrivilegeSet, an ArgumentError
93
+ # exception must occur.
94
+ def test_add_resource_to_invalid_privilege_set
95
+ assert_raise(ArgumentError) do
96
+ Privilege.resource :cbac_privilege_error, "add/resource/to/invalid/privilege/set", :get
97
+ end
98
+ end
99
+
100
+ # Test the Privilege.select method. This method accepts a controller method
101
+ # string and an action type It returns the privilegesets that comply with this
102
+ # combination The actions post, put and delete are identical. This test aims
103
+ # at testing this assumption.
104
+ def test_select_correct
105
+ Privilege.resource :cbac_privilege, "select/correct/get", :get
106
+ Privilege.resource :cbac_privilege, "select/correct/post", :post
107
+ Privilege.resource :cbac_privilege, "select/correct/put", :post
108
+ Privilege.resource :cbac_privilege, "select/correct/delete", :post
109
+ assert_equal 1, Privilege.select("select/correct/get", :get).length
110
+ [:post, :put, :delete].each do |action|
111
+ assert_equal 1, Privilege.select("select/correct/post", action).length
112
+ assert_equal 1, Privilege.select("select/correct/put", action).length
113
+ assert_equal 1, Privilege.select("select/correct/delete", action).length
114
+ end
115
+ end
116
+
117
+ def test_exception()
118
+ begin
119
+ yield
120
+ rescue Exception => e
121
+ return e.message
122
+ end
123
+ raise "No exception was thrown"
124
+ end
125
+
126
+ # test selecting an incorrect action type
127
+ def test_select_incorrect_action_types
128
+ controller_method = "select/incorrect/action/types/get"
129
+ Privilege.resource :cbac_privilege, controller_method, :get
130
+ Privilege.select(controller_method, :get)
131
+ assert_match(/Incorrect action_type/, test_exception { Privilege.select(controller_method, :error) })
132
+ end
133
+
134
+ # If a user asks for the wrong action_type (e.g. a request is made for 'get'
135
+ # but there are only 'post' privileges or vica versa) the system will throw an
136
+ # exception as expected, but the system will also hint at the possibility of
137
+ # messing up get and post.
138
+ def test_select_the_other_action_type
139
+ controller_method = "select/the/other/action/type/get"
140
+ Privilege.resource :cbac_privilege, controller_method, :get
141
+ assert_match(/PrivilegeSets only exist for other action/, test_exception { Privilege.select(controller_method, :post) })
142
+ end
143
+
144
+ # Trying to find privileges for a set that doesn't exist, should result in an
145
+ # exception
146
+ def test_select_could_not_find_any_privilegeset
147
+ controller_method = "select/could/not/find/any/privilegeset/get"
148
+ assert_raise(RuntimeError) do
149
+ Privilege.select(controller_method, :post)
150
+ end
151
+ end
153
152
  end
@@ -1,52 +1,51 @@
1
- require File.expand_path(File.join(File.dirname(__FILE__), '../../../../test/test_helper'))
2
- require 'test/unit'
3
- require 'rubygems'
4
-
5
- ###
6
- # Tests the Cbac::PrivilegeSet class
7
- #
8
- class CbacPrivilegeSetTest < ActiveSupport::TestCase
9
- self.fixture_path = File.join(File.dirname(__FILE__), "fixtures")
10
- fixtures :all
11
-
12
- # Adds a new privilege to the PrivilegeSet.
13
- # This test should add a new privilege and everything should be working.
14
- def test_adding_new_privilege_set
15
- comment = "test_adding_new_privilege_set"
16
- assert_difference("PrivilegeSet.sets.length", 1, "Adding test PrivilegeSet") do
17
- PrivilegeSet.add :test_adding_new_privilege_set, comment
18
- end
19
- assert_equal(true, PrivilegeSet.sets.include?(:test_adding_new_privilege_set), "PrivilegeSet symbol not found.")
20
- assert_equal(comment, PrivilegeSet.sets[:test_adding_new_privilege_set].comment, "Incorrect comment.")
21
- end
22
-
23
- # When adding an already existing PrivilegeSet, an ArgumentError should be raised.
24
- # PrivilegeSets can only be declared once.
25
- def test_adding_double_privilege_sets
26
- PrivilegeSet.add :test_adding_double_privilege_sets, ""
27
- assert_raise(ArgumentError) do
28
- PrivilegeSet.add :test_adding_double_privilege_sets, ""
29
- end
30
- end
31
-
32
- # This privilegeset is already in the database. The id
33
- # should therefore be identical to the id specified in the fixture.
34
- # Also, the number of records should not change.
35
- def test_initializing_existing_privilege_set
36
- assert_difference("PrivilegeSet.sets.length", 1, "Adding test PrivilegeSet") do
37
- assert_difference("Cbac::PrivilegeSetRecord.find(:all).length", 0, "Record should have been added to table") do
38
- PrivilegeSet.add :existing_privilege_set, "Something"
39
- end
40
- end
41
- end
42
-
43
- # This privilegeset does not yet exist. A new entry should be created
44
- # in the database. Also, the id should not be zero.
45
- def test_initializing_new_privilege_set
46
- assert_difference("PrivilegeSet.sets.length", 1, "Adding test PrivilegeSet") do
47
- assert_difference("Cbac::PrivilegeSetRecord.find(:all).length", 1, "Record should not be added to table - record already exists") do
48
- PrivilegeSet.add :test_initializing_new_privilege_set, "Something"
49
- end
50
- end
51
- end
1
+ # Copyright 2010 Bert Meerman
2
+ require File.expand_path(File.join(File.dirname(__FILE__), 'test_helper'))
3
+
4
+ ###
5
+ # Tests the Cbac::PrivilegeSet class
6
+ #
7
+ class CbacPrivilegeSetTest < ActiveSupport::TestCase
8
+ #self.fixture_path = File.join(File.dirname(__FILE__), "fixtures")
9
+ #fixtures :all
10
+
11
+ # Adds a new privilege to the PrivilegeSet.
12
+ # This test should add a new privilege and everything should be working.
13
+ def test_adding_new_privilege_set
14
+ comment = "test_adding_new_privilege_set"
15
+ assert_difference("PrivilegeSet.sets.length", 1, "Adding test PrivilegeSet") do
16
+ PrivilegeSet.add :test_adding_new_privilege_set, comment
17
+ end
18
+ assert_equal(true, PrivilegeSet.sets.include?(:test_adding_new_privilege_set), "PrivilegeSet symbol not found.")
19
+ assert_equal(comment, PrivilegeSet.sets[:test_adding_new_privilege_set].comment, "Incorrect comment.")
20
+ end
21
+
22
+ # When adding an already existing PrivilegeSet, an ArgumentError should be raised.
23
+ # PrivilegeSets can only be declared once.
24
+ def test_adding_double_privilege_sets
25
+ PrivilegeSet.add :test_adding_double_privilege_sets, ""
26
+ assert_raise(ArgumentError) do
27
+ PrivilegeSet.add :test_adding_double_privilege_sets, ""
28
+ end
29
+ end
30
+
31
+ # This privilegeset is already in the database. The id
32
+ # should therefore be identical to the id specified in the fixture.
33
+ # Also, the number of records should not change.
34
+ def test_initializing_existing_privilege_set
35
+ assert_difference("PrivilegeSet.sets.length", 1, "Adding test PrivilegeSet") do
36
+ assert_difference("Cbac::PrivilegeSetRecord.find(:all).length", 0, "Record should have been added to table") do
37
+ PrivilegeSet.add :existing_privilege_set, "Something"
38
+ end
39
+ end
40
+ end
41
+
42
+ # This privilegeset does not yet exist. A new entry should be created
43
+ # in the database. Also, the id should not be zero.
44
+ def test_initializing_new_privilege_set
45
+ assert_difference("PrivilegeSet.sets.length", 1, "Adding test PrivilegeSet") do
46
+ assert_difference("Cbac::PrivilegeSetRecord.find(:all).length", 1, "Record should not be added to table - record already exists") do
47
+ PrivilegeSet.add :test_initializing_new_privilege_set, "Something"
48
+ end
49
+ end
50
+ end
52
51
  end
@@ -0,0 +1,28 @@
1
+ # Copyright 2010 Bert Meerman
2
+
3
+ # Setup ActiveRecord and ActiveSupport
4
+ ENV["RAILS_ENV"] ||= "test"
5
+ RAILS_ENV ||= "test"
6
+ require "active_record"
7
+ require "active_record/fixtures"
8
+ require "yaml"
9
+ require "erb"
10
+ require "active_support"
11
+ ActiveRecord::Base.establish_connection(
12
+ 'adapter' => 'sqlite3',
13
+ 'database' => 'test/db/test.sqlite3'
14
+ )
15
+ fixture_files = Dir.glob(File.join(File.dirname(__FILE__), "fixtures", "*.yml"))
16
+ fixture_files.each do |filename|
17
+ Fixtures.create_fixtures('test/fixtures', File.basename(filename, ".*"))
18
+ end
19
+ RAILS_ROOT ||= "."
20
+
21
+ # Setup cbac configuration
22
+ require "cbac"
23
+ class ActiveSupport::TestCase
24
+ include Cbac
25
+
26
+ session = Hash.new
27
+ session[:currentuser] = 1
28
+ end
metadata CHANGED
@@ -1,13 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cbac
3
3
  version: !ruby/object:Gem::Version
4
- hash: 3
5
4
  prerelease: false
6
5
  segments:
7
6
  - 0
8
- - 5
9
- - 4
10
- version: 0.5.4
7
+ - 6
8
+ - 0
9
+ version: 0.6.0
11
10
  platform: ruby
12
11
  authors:
13
12
  - Bert Meerman
@@ -15,7 +14,7 @@ autorequire:
15
14
  bindir: bin
16
15
  cert_chain: []
17
16
 
18
- date: 2010-11-30 00:00:00 +01:00
17
+ date: 2011-01-20 00:00:00 +01:00
19
18
  default_executable:
20
19
  dependencies: []
21
20
 
@@ -43,35 +42,39 @@ extra_rdoc_files:
43
42
  - lib/cbac/privilege_set.rb
44
43
  - lib/cbac/privilege_set_record.rb
45
44
  - lib/cbac/setup.rb
45
+ - lib/generators/cbac/USAGE
46
+ - lib/generators/cbac/cbac_generator.rb
47
+ - lib/generators/cbac/copy_files/config/cbac.pristine
48
+ - lib/generators/cbac/copy_files/config/context_roles.rb
49
+ - lib/generators/cbac/copy_files/config/privileges.rb
50
+ - lib/generators/cbac/copy_files/controllers/generic_roles_controller.rb
51
+ - lib/generators/cbac/copy_files/controllers/memberships_controller.rb
52
+ - lib/generators/cbac/copy_files/controllers/permissions_controller.rb
53
+ - lib/generators/cbac/copy_files/controllers/upgrade_controller.rb
54
+ - lib/generators/cbac/copy_files/fixtures/cbac_generic_roles.yml
55
+ - lib/generators/cbac/copy_files/fixtures/cbac_memberships.yml
56
+ - lib/generators/cbac/copy_files/fixtures/cbac_permissions.yml
57
+ - lib/generators/cbac/copy_files/initializers/cbac_config.rb
58
+ - lib/generators/cbac/copy_files/migrate/create_cbac_from_scratch.rb
59
+ - lib/generators/cbac/copy_files/migrate/create_cbac_upgrade_path.rb
60
+ - lib/generators/cbac/copy_files/stylesheets/cbac.css
61
+ - lib/generators/cbac/copy_files/tasks/cbac.rake
62
+ - lib/generators/cbac/copy_files/views/generic_roles/index.html.erb
63
+ - lib/generators/cbac/copy_files/views/layouts/cbac.html.erb
64
+ - lib/generators/cbac/copy_files/views/memberships/_update.html.erb
65
+ - lib/generators/cbac/copy_files/views/memberships/index.html.erb
66
+ - lib/generators/cbac/copy_files/views/permissions/_update_context_role.html.erb
67
+ - lib/generators/cbac/copy_files/views/permissions/_update_generic_role.html.erb
68
+ - lib/generators/cbac/copy_files/views/permissions/index.html.erb
69
+ - lib/generators/cbac/copy_files/views/upgrade/index.html.erb
46
70
  - tasks/cbac.rake
47
71
  files:
48
72
  - Manifest
49
73
  - README.rdoc
50
74
  - Rakefile
51
- - generators/cbac/USAGE
52
- - generators/cbac/cbac_generator.rb
53
- - generators/cbac/templates/config/cbac.pristine
54
- - generators/cbac/templates/config/context_roles.rb
55
- - generators/cbac/templates/config/privileges.rb
56
- - generators/cbac/templates/controllers/generic_roles_controller.rb
57
- - generators/cbac/templates/controllers/memberships_controller.rb
58
- - generators/cbac/templates/controllers/permissions_controller.rb
59
- - generators/cbac/templates/controllers/upgrade_controller.rb
60
- - generators/cbac/templates/fixtures/cbac_generic_roles.yml
61
- - generators/cbac/templates/fixtures/cbac_memberships.yml
62
- - generators/cbac/templates/fixtures/cbac_permissions.yml
63
- - generators/cbac/templates/migrate/create_cbac_from_scratch.rb
64
- - generators/cbac/templates/migrate/create_cbac_upgrade_path.rb
65
- - generators/cbac/templates/stylesheets/cbac.css
66
- - generators/cbac/templates/tasks/cbac.rake
67
- - generators/cbac/templates/views/generic_roles/index.html.erb
68
- - generators/cbac/templates/views/layouts/cbac.html.erb
69
- - generators/cbac/templates/views/memberships/_update.html.erb
70
- - generators/cbac/templates/views/memberships/index.html.erb
71
- - generators/cbac/templates/views/permissions/_update_context_role.html.erb
72
- - generators/cbac/templates/views/permissions/_update_generic_role.html.erb
73
- - generators/cbac/templates/views/permissions/index.html.erb
74
- - generators/cbac/templates/views/upgrade/index.html.erb
75
+ - config/cbac/context_roles.rb
76
+ - config/cbac/privileges.rb
77
+ - context_roles.rb
75
78
  - init.rb
76
79
  - lib/cbac.rb
77
80
  - lib/cbac/cbac_pristine/pristine.rb
@@ -89,6 +92,38 @@ files:
89
92
  - lib/cbac/privilege_set.rb
90
93
  - lib/cbac/privilege_set_record.rb
91
94
  - lib/cbac/setup.rb
95
+ - lib/generators/cbac/USAGE
96
+ - lib/generators/cbac/cbac_generator.rb
97
+ - lib/generators/cbac/copy_files/config/cbac.pristine
98
+ - lib/generators/cbac/copy_files/config/context_roles.rb
99
+ - lib/generators/cbac/copy_files/config/privileges.rb
100
+ - lib/generators/cbac/copy_files/controllers/generic_roles_controller.rb
101
+ - lib/generators/cbac/copy_files/controllers/memberships_controller.rb
102
+ - lib/generators/cbac/copy_files/controllers/permissions_controller.rb
103
+ - lib/generators/cbac/copy_files/controllers/upgrade_controller.rb
104
+ - lib/generators/cbac/copy_files/fixtures/cbac_generic_roles.yml
105
+ - lib/generators/cbac/copy_files/fixtures/cbac_memberships.yml
106
+ - lib/generators/cbac/copy_files/fixtures/cbac_permissions.yml
107
+ - lib/generators/cbac/copy_files/initializers/cbac_config.rb
108
+ - lib/generators/cbac/copy_files/migrate/create_cbac_from_scratch.rb
109
+ - lib/generators/cbac/copy_files/migrate/create_cbac_upgrade_path.rb
110
+ - lib/generators/cbac/copy_files/stylesheets/cbac.css
111
+ - lib/generators/cbac/copy_files/tasks/cbac.rake
112
+ - lib/generators/cbac/copy_files/views/generic_roles/index.html.erb
113
+ - lib/generators/cbac/copy_files/views/layouts/cbac.html.erb
114
+ - lib/generators/cbac/copy_files/views/memberships/_update.html.erb
115
+ - lib/generators/cbac/copy_files/views/memberships/index.html.erb
116
+ - lib/generators/cbac/copy_files/views/permissions/_update_context_role.html.erb
117
+ - lib/generators/cbac/copy_files/views/permissions/_update_generic_role.html.erb
118
+ - lib/generators/cbac/copy_files/views/permissions/index.html.erb
119
+ - lib/generators/cbac/copy_files/views/upgrade/index.html.erb
120
+ - nbproject/private/private.properties
121
+ - nbproject/private/private.xml
122
+ - nbproject/private/rake-d.txt
123
+ - nbproject/project.properties
124
+ - nbproject/project.xml
125
+ - privileges.rb
126
+ - rails/init.rb
92
127
  - spec/cbac_pristine_file_spec.rb
93
128
  - spec/cbac_pristine_permission_spec.rb
94
129
  - spec/cbac_pristine_role_spec.rb
@@ -96,6 +131,7 @@ files:
96
131
  - spec/spec.opts
97
132
  - spec/spec_helper.rb
98
133
  - tasks/cbac.rake
134
+ - test/db/test.sqlite3
99
135
  - test/fixtures/cbac_generic_roles.yml
100
136
  - test/fixtures/cbac_memberships.yml
101
137
  - test/fixtures/cbac_permissions.yml
@@ -106,10 +142,7 @@ files:
106
142
  - test/test_cbac_context_role.rb
107
143
  - test/test_cbac_privilege.rb
108
144
  - test/test_cbac_privilege_set.rb
109
- - vendor/plugins/cbac/Manifest
110
- - vendor/plugins/cbac/cbac-0.5.3.gem
111
- - vendor/plugins/cbac/cbac.gemspec
112
- - vendor/plugins/cbac/pkg/cbac-0.5.3.gem
145
+ - test/test_helper.rb
113
146
  - cbac.gemspec
114
147
  has_rdoc: true
115
148
  homepage: http://cbac.rubyforge.org
@@ -130,7 +163,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
130
163
  requirements:
131
164
  - - ">="
132
165
  - !ruby/object:Gem::Version
133
- hash: 3
134
166
  segments:
135
167
  - 0
136
168
  version: "0"
@@ -139,7 +171,6 @@ required_rubygems_version: !ruby/object:Gem::Requirement
139
171
  requirements:
140
172
  - - ">="
141
173
  - !ruby/object:Gem::Version
142
- hash: 11
143
174
  segments:
144
175
  - 1
145
176
  - 2
@@ -152,9 +183,10 @@ signing_key:
152
183
  specification_version: 3
153
184
  summary: CBAC - Simple authorization system for Rails applications.
154
185
  test_files:
155
- - test/test_cbac_context_role.rb
156
- - test/test_cbac_authorize_context_roles.rb
157
186
  - test/test_cbac_actions.rb
158
- - test/test_cbac_privilege.rb
187
+ - test/test_cbac_authorize_context_roles.rb
159
188
  - test/test_cbac_authorize_generic_roles.rb
189
+ - test/test_cbac_context_role.rb
190
+ - test/test_cbac_privilege.rb
160
191
  - test/test_cbac_privilege_set.rb
192
+ - test/test_helper.rb