zuul 0.1.1 → 0.2.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.
Files changed (80) hide show
  1. data/lib/generators/zuul/orm_helpers.rb +21 -0
  2. data/lib/generators/zuul/permission_generator.rb +57 -0
  3. data/lib/generators/zuul/permission_role_generator.rb +40 -0
  4. data/lib/generators/zuul/permission_subject_generator.rb +40 -0
  5. data/lib/generators/zuul/role_generator.rb +58 -0
  6. data/lib/generators/zuul/role_subject_generator.rb +40 -0
  7. data/lib/generators/zuul/subject_generator.rb +39 -0
  8. data/lib/generators/zuul/templates/permission.rb +18 -0
  9. data/lib/generators/zuul/templates/permission_existing.rb +25 -0
  10. data/lib/generators/zuul/templates/permission_role.rb +17 -0
  11. data/lib/generators/zuul/templates/permission_role_existing.rb +24 -0
  12. data/lib/generators/zuul/templates/permission_subject.rb +17 -0
  13. data/lib/generators/zuul/templates/permission_subject_existing.rb +24 -0
  14. data/lib/generators/zuul/templates/role.rb +20 -0
  15. data/lib/generators/zuul/templates/role_existing.rb +27 -0
  16. data/lib/generators/zuul/templates/role_subject.rb +17 -0
  17. data/lib/generators/zuul/templates/role_subject_existing.rb +24 -0
  18. data/lib/tasks/zuul.rake +56 -0
  19. data/lib/zuul.rb +14 -5
  20. data/lib/zuul/action_controller.rb +108 -0
  21. data/lib/zuul/action_controller/dsl.rb +384 -0
  22. data/lib/zuul/action_controller/evaluators.rb +60 -0
  23. data/lib/zuul/active_record.rb +338 -0
  24. data/lib/zuul/active_record/context.rb +38 -0
  25. data/lib/zuul/active_record/permission.rb +31 -0
  26. data/lib/zuul/active_record/permission_role.rb +29 -0
  27. data/lib/zuul/active_record/permission_subject.rb +29 -0
  28. data/lib/zuul/active_record/role.rb +117 -0
  29. data/lib/zuul/active_record/role_subject.rb +29 -0
  30. data/lib/zuul/active_record/scope.rb +71 -0
  31. data/lib/zuul/active_record/subject.rb +239 -0
  32. data/lib/zuul/configuration.rb +149 -0
  33. data/lib/zuul/context.rb +53 -0
  34. data/lib/zuul/exceptions.rb +3 -0
  35. data/lib/zuul/exceptions/access_denied.rb +9 -0
  36. data/lib/zuul/exceptions/invalid_context.rb +9 -0
  37. data/lib/zuul/exceptions/undefined_scope.rb +9 -0
  38. data/lib/zuul/railtie.rb +5 -0
  39. data/lib/zuul/version.rb +3 -0
  40. data/lib/zuul_viz.rb +195 -0
  41. data/spec/db/schema.rb +172 -0
  42. data/spec/spec_helper.rb +25 -0
  43. data/spec/support/capture_stdout.rb +12 -0
  44. data/spec/support/models.rb +167 -0
  45. data/spec/zuul/active_record/context_spec.rb +55 -0
  46. data/spec/zuul/active_record/permission_role_spec.rb +84 -0
  47. data/spec/zuul/active_record/permission_spec.rb +174 -0
  48. data/spec/zuul/active_record/permission_subject_spec.rb +84 -0
  49. data/spec/zuul/active_record/role_spec.rb +694 -0
  50. data/spec/zuul/active_record/role_subject_spec.rb +84 -0
  51. data/spec/zuul/active_record/scope_spec.rb +75 -0
  52. data/spec/zuul/active_record/subject_spec.rb +1186 -0
  53. data/spec/zuul/active_record_spec.rb +624 -0
  54. data/spec/zuul/configuration_spec.rb +254 -0
  55. data/spec/zuul/context_spec.rb +128 -0
  56. data/spec/zuul_spec.rb +15 -0
  57. metadata +181 -70
  58. data/.document +0 -5
  59. data/.gitignore +0 -23
  60. data/LICENSE +0 -20
  61. data/README.rdoc +0 -65
  62. data/Rakefile +0 -54
  63. data/VERSION +0 -1
  64. data/lib/zuul/restrict_access.rb +0 -104
  65. data/lib/zuul/valid_roles.rb +0 -37
  66. data/spec/rails_root/app/controllers/application_controller.rb +0 -2
  67. data/spec/rails_root/app/models/user.rb +0 -8
  68. data/spec/rails_root/config/boot.rb +0 -110
  69. data/spec/rails_root/config/database.yml +0 -5
  70. data/spec/rails_root/config/environment.rb +0 -7
  71. data/spec/rails_root/config/environments/test.rb +0 -7
  72. data/spec/rails_root/config/initializers/session_store.rb +0 -15
  73. data/spec/rails_root/config/routes.rb +0 -4
  74. data/spec/rails_root/db/test.sqlite3 +0 -0
  75. data/spec/rails_root/log/test.log +0 -5388
  76. data/spec/rails_root/spec/controllers/require_user_spec.rb +0 -138
  77. data/spec/rails_root/spec/controllers/restrict_access_spec.rb +0 -64
  78. data/spec/rails_root/spec/models/user_spec.rb +0 -37
  79. data/spec/rails_root/spec/spec_helper.rb +0 -34
  80. data/zuul.gemspec +0 -78
@@ -0,0 +1,254 @@
1
+ require 'spec_helper'
2
+
3
+ describe "Zuul::Configuration" do
4
+ before(:each) do
5
+ @config = Zuul::Configuration.new
6
+ end
7
+
8
+ it "should provide constants defining default attributes and values" do
9
+ expect { Zuul::Configuration::PRIMARY_AUTHORIZATION_CLASSES }.to_not raise_exception
10
+ expect { Zuul::Configuration::AUTHORIZATION_JOIN_CLASSES }.to_not raise_exception
11
+ expect { Zuul::Configuration::DEFAULT_AUTHORIZATION_CLASSES }.to_not raise_exception
12
+ expect { Zuul::Configuration::DEFAULT_CONFIGURATION_OPTIONS }.to_not raise_exception
13
+ end
14
+
15
+ it "should ensure all defined defaults are accessible attributes" do
16
+ [Zuul::Configuration::DEFAULT_AUTHORIZATION_CLASSES, Zuul::Configuration::DEFAULT_CONFIGURATION_OPTIONS].each do |opts|
17
+ opts.each do |key,val|
18
+ @config.should respond_to(key)
19
+ end
20
+ end
21
+ end
22
+
23
+ it "should initialize with defaults from the defined constants" do
24
+ [Zuul::Configuration::DEFAULT_AUTHORIZATION_CLASSES, Zuul::Configuration::DEFAULT_CONFIGURATION_OPTIONS].each do |opts|
25
+ opts.each do |key,val|
26
+ @config.send(key).should == val
27
+ end
28
+ end
29
+ end
30
+
31
+ describe "PRIMARY_AUTHORIZATION_CLASSES" do
32
+ it "should define the :subject_class option" do
33
+ Zuul::Configuration::PRIMARY_AUTHORIZATION_CLASSES.has_key?(:subject_class).should be_true
34
+ Zuul::Configuration::PRIMARY_AUTHORIZATION_CLASSES[:subject_class].should == :user
35
+ end
36
+
37
+ it "should define the :role_class option" do
38
+ Zuul::Configuration::PRIMARY_AUTHORIZATION_CLASSES.has_key?(:role_class).should be_true
39
+ Zuul::Configuration::PRIMARY_AUTHORIZATION_CLASSES[:role_class].should == :role
40
+ end
41
+
42
+ it "should define the :permission_class option" do
43
+ Zuul::Configuration::PRIMARY_AUTHORIZATION_CLASSES.has_key?(:permission_class).should be_true
44
+ Zuul::Configuration::PRIMARY_AUTHORIZATION_CLASSES[:permission_class].should == :permission
45
+ end
46
+ end
47
+
48
+ describe "AUTHORIZATION_JOIN_CLASSES" do
49
+ it "should define the :role_subject_class option" do
50
+ Zuul::Configuration::AUTHORIZATION_JOIN_CLASSES.has_key?(:role_subject_class).should be_true
51
+ Zuul::Configuration::AUTHORIZATION_JOIN_CLASSES[:role_subject_class].should == :role_user
52
+ end
53
+
54
+ it "should define the :permission_role_class option" do
55
+ Zuul::Configuration::AUTHORIZATION_JOIN_CLASSES.has_key?(:permission_role_class).should be_true
56
+ Zuul::Configuration::AUTHORIZATION_JOIN_CLASSES[:permission_role_class].should == :permission_role
57
+ end
58
+
59
+ it "should define the :permission_subject_class option" do
60
+ Zuul::Configuration::AUTHORIZATION_JOIN_CLASSES.has_key?(:permission_subject_class).should be_true
61
+ Zuul::Configuration::AUTHORIZATION_JOIN_CLASSES[:permission_subject_class].should == :permission_user
62
+ end
63
+ end
64
+
65
+ describe "DEFAULT_AUTHORIZATION_CLASSES" do
66
+ it "should combine the PRIMARY_AUTHORIZATION_CLASSES and AUTHORIZATION_JOIN_CLASSES" do
67
+ [Zuul::Configuration::PRIMARY_AUTHORIZATION_CLASSES, Zuul::Configuration::AUTHORIZATION_JOIN_CLASSES].each do |classes|
68
+ classes.each do |key,val|
69
+ Zuul::Configuration::DEFAULT_AUTHORIZATION_CLASSES.has_key?(key).should be_true
70
+ Zuul::Configuration::DEFAULT_AUTHORIZATION_CLASSES[key].should == val
71
+ end
72
+ end
73
+ end
74
+ end
75
+
76
+ describe "DEFAULT_CONFIGURATION_OPTIONS" do
77
+ it "should define the :acl_default option" do
78
+ Zuul::Configuration::DEFAULT_CONFIGURATION_OPTIONS.has_key?(:acl_default).should be_true
79
+ Zuul::Configuration::DEFAULT_CONFIGURATION_OPTIONS[:acl_default].should == :deny
80
+ end
81
+
82
+ it "should define the :subject_method option" do
83
+ Zuul::Configuration::DEFAULT_CONFIGURATION_OPTIONS.has_key?(:subject_method).should be_true
84
+ Zuul::Configuration::DEFAULT_CONFIGURATION_OPTIONS[:subject_method].should == :current_user
85
+ end
86
+
87
+ it "should define the :with_permissions option" do
88
+ Zuul::Configuration::DEFAULT_CONFIGURATION_OPTIONS.has_key?(:with_permissions).should be_true
89
+ Zuul::Configuration::DEFAULT_CONFIGURATION_OPTIONS[:with_permissions].should == true
90
+ end
91
+
92
+ it "should define the :force_context option" do
93
+ Zuul::Configuration::DEFAULT_CONFIGURATION_OPTIONS.has_key?(:force_context).should be_true
94
+ Zuul::Configuration::DEFAULT_CONFIGURATION_OPTIONS[:force_context].should == false
95
+ end
96
+ end
97
+
98
+ describe "#configure" do
99
+ context "with a hash" do
100
+ it "should use the hash keys/vals to set instance variables" do
101
+ @config.configure(:subject_class => :custom_subject, :acl_default => :allow)
102
+ @config.subject_class.should == :custom_subject
103
+ @config.acl_default.should == :allow
104
+ end
105
+
106
+ it "should not allow setting instance variables that are not defined as defaults" do
107
+ @config.configure(:bad_key => :bad_value)
108
+ @config.should_not respond_to(:bad_key)
109
+ @config.instance_eval do
110
+ @bad_key.should == nil
111
+ end
112
+ end
113
+ end
114
+
115
+ context "with a block" do
116
+ it "should allow setting config vars via the passed config object" do
117
+ @config.configure do |config|
118
+ config.subject_method = :config_current_user
119
+ end
120
+ @config.subject_method.should == :config_current_user
121
+ end
122
+
123
+ it "should allow setting config vars via instance variables" do
124
+ @config.configure do
125
+ @subject_method = :ivar_current_user
126
+ end
127
+ @config.subject_method.should == :ivar_current_user
128
+ end
129
+
130
+ it "should allow setting config vars via self" do
131
+ @config.configure do
132
+ self.subject_method = :self_current_user
133
+ end
134
+ @config.subject_method.should == :self_current_user
135
+ end
136
+ end
137
+
138
+ context "with a hash and a block" do
139
+ it "should use both the hash and block for configuration" do
140
+ @config.configure(:subject_class => :custom_subject) do |config|
141
+ config.role_class = :custom_role
142
+ end
143
+ @config.subject_class.should == :custom_subject
144
+ @config.role_class.should == :custom_role
145
+ end
146
+
147
+ it "should override hash values with values set in the block" do
148
+ @config.configure(:role_class => :hash_role) do |config|
149
+ config.role_class = :block_role
150
+ end
151
+ @config.role_class.should == :block_role
152
+ end
153
+ end
154
+
155
+ it "should redefine the join classes when custom classes are provided" do
156
+ @config.configure(:subject_class => :soldier, :role_class => :rank, :permission_class => :skill)
157
+ @config.role_subject_class.should == "RankSoldier"
158
+ @config.permission_subject_class.should == "SkillSoldier"
159
+ @config.permission_role_class.should == "RankSkill"
160
+ end
161
+
162
+ it "should not override join classes if they were provided" do
163
+ @config.configure(:role_subject_class => :special_role_user, :role_class => :rank)
164
+ @config.role_subject_class.should == :special_role_user
165
+ end
166
+ end
167
+
168
+ describe "#to_hash" do
169
+ it "should return a hash with all the configuration keys" do
170
+ [Zuul::Configuration::DEFAULT_AUTHORIZATION_CLASSES, Zuul::Configuration::DEFAULT_CONFIGURATION_OPTIONS].each do |opts|
171
+ opts.keys.each do |key|
172
+ @config.to_hash.has_key?(key).should be_true
173
+ end
174
+ end
175
+ end
176
+
177
+ it "should populate values with the current configuration values" do
178
+ [Zuul::Configuration::DEFAULT_AUTHORIZATION_CLASSES, Zuul::Configuration::DEFAULT_CONFIGURATION_OPTIONS].each do |opts|
179
+ opts.keys.each do |key|
180
+ @config.to_hash[key].should == @config.send(key)
181
+ end
182
+ end
183
+ end
184
+ end
185
+
186
+ describe "#classes" do
187
+ it "should return a ClassStruct" do
188
+ @config.classes.class.ancestors.should include(Zuul::Configuration::ClassStruct)
189
+ end
190
+
191
+ it "should return a ClassStruct of all the default configuration classes" do
192
+ Zuul::Configuration::DEFAULT_AUTHORIZATION_CLASSES.keys.each do |key|
193
+ @config.classes.should respond_to(key)
194
+ end
195
+ @config.classes.keys.each do |key|
196
+ Zuul::Configuration::DEFAULT_AUTHORIZATION_CLASSES.has_key?(key).should be_true
197
+ end
198
+ end
199
+ end
200
+
201
+ describe "#primary_classes" do
202
+ it "should return a ClassStruct" do
203
+ @config.classes.class.ancestors.should include(Zuul::Configuration::ClassStruct)
204
+ end
205
+
206
+ it "should return a ClassStruct of all the default configuration classes" do
207
+ Zuul::Configuration::PRIMARY_AUTHORIZATION_CLASSES.keys.each do |key|
208
+ @config.primary_classes.should respond_to(key)
209
+ end
210
+ @config.primary_classes.keys.each do |key|
211
+ Zuul::Configuration::PRIMARY_AUTHORIZATION_CLASSES.has_key?(key).should be_true
212
+ end
213
+ end
214
+ end
215
+
216
+ describe "#join_classes" do
217
+ it "should return a ClassStruct" do
218
+ @config.join_classes.class.ancestors.should include(Zuul::Configuration::ClassStruct)
219
+ end
220
+
221
+ it "should return a ClassStruct of all the default configuration join classes" do
222
+ Zuul::Configuration::AUTHORIZATION_JOIN_CLASSES.keys.each do |key|
223
+ @config.join_classes.should respond_to(key)
224
+ end
225
+ @config.join_classes.keys.each do |key|
226
+ Zuul::Configuration::AUTHORIZATION_JOIN_CLASSES.has_key?(key).should be_true
227
+ end
228
+ end
229
+ end
230
+
231
+ describe "Zuul::Configuration::ClassStruct" do
232
+ it "should inherit from Struct" do
233
+ Zuul::Configuration::ClassStruct.ancestors.should include(Struct)
234
+ end
235
+
236
+ describe "#keys" do
237
+ it "should return an array of keys" do
238
+ Zuul::Configuration::ClassStruct.new(:key1, :key2, :key3).new.keys.should == [:key1, :key2, :key3]
239
+ end
240
+ end
241
+
242
+ describe "#to_array" do
243
+ it "should return an array of values" do
244
+ Zuul::Configuration::ClassStruct.new(:key1, :key2, :key3).new(:val1, :val2, :val3).to_array.should == [:val1, :val2, :val3]
245
+ end
246
+ end
247
+
248
+ describe "#to_hash" do
249
+ it "should return a hash of key/value pairs" do
250
+ Zuul::Configuration::ClassStruct.new(:key1, :key2, :key3).new(:val1, :val2, :val3).to_hash.should == {:key1 => :val1, :key2 => :val2, :key3 => :val3}
251
+ end
252
+ end
253
+ end
254
+ end
@@ -0,0 +1,128 @@
1
+ require 'spec_helper'
2
+
3
+ describe "Zuul::Context" do
4
+
5
+ describe "parse" do
6
+ it "should allow passing nil" do
7
+ expect { Zuul::Context.parse(nil) }.to_not raise_exception
8
+ end
9
+
10
+ it "should allow passing a class" do
11
+ expect { Zuul::Context.parse(Context) }.to_not raise_exception
12
+ end
13
+
14
+ it "should allow passing an instance" do
15
+ context = Context.create(:name => "Test Context")
16
+ expect { Zuul::Context.parse(context) }.to_not raise_exception
17
+ end
18
+
19
+ it "should allow passing another context" do
20
+ expect { Zuul::Context.parse(Zuul::Context.new) }.to_not raise_exception
21
+ end
22
+
23
+ it "should allow passing a class_name and id" do
24
+ expect { Zuul::Context.parse('Context', 1) }.to_not raise_exception
25
+ end
26
+
27
+ it "should return an Zuul::Context object with the context broken into it's two parts" do
28
+ parsed = Zuul::Context.parse(nil)
29
+ parsed.should be_an_instance_of(Zuul::Context)
30
+ end
31
+
32
+ it "should return a nil context context for nil" do
33
+ parsed = Zuul::Context.parse(nil)
34
+ parsed.class_name.should be_nil
35
+ parsed.id.should be_nil
36
+ end
37
+
38
+ it "should return a context with class_name set to the class name for class context" do
39
+ parsed = Zuul::Context.parse(Context)
40
+ parsed.class_name.should == 'Context'
41
+ parsed.id.should be_nil
42
+ end
43
+
44
+ it "should return a context with class_name and id set for an instance context" do
45
+ context = Context.create(:name => "Test Context")
46
+ parsed = Zuul::Context.parse(context)
47
+ parsed.class_name.should == 'Context'
48
+ parsed.id.should == context.id
49
+ end
50
+ end
51
+
52
+ describe "#to_context" do
53
+ it "should return nil for a nil context" do
54
+ Zuul::Context.new.to_context.should be_nil
55
+ end
56
+
57
+ it "should return the class for a class context" do
58
+ Zuul::Context.new('Context', nil).to_context.should == Context
59
+ end
60
+
61
+ it "should return the instance for an instance context" do
62
+ obj = Context.create(:name => "Test Context")
63
+ context = Zuul::Context.new('Context', obj.id).to_context
64
+ context.should be_an_instance_of(Context)
65
+ context.id.should == obj.id
66
+ end
67
+ end
68
+
69
+ describe "#instance?" do
70
+ it "should return false for a nil context" do
71
+ Zuul::Context.new.instance?.should be_false
72
+ end
73
+
74
+ it "should return false for a class context" do
75
+ Zuul::Context.new('Context', nil).instance?.should be_false
76
+ end
77
+
78
+ it "should return true for an instance context" do
79
+ obj = Context.create(:name => "Test Context")
80
+ Zuul::Context.new('Context', obj.id).instance?.should be_true
81
+ end
82
+ end
83
+
84
+ describe "#class?" do
85
+ it "should return false for a nil context" do
86
+ Zuul::Context.new.class?.should be_false
87
+ end
88
+
89
+ it "should return true for a class context" do
90
+ Zuul::Context.new('Context', nil).class?.should be_true
91
+ end
92
+
93
+ it "should return false for an instance context" do
94
+ obj = Context.create(:name => "Test Context")
95
+ Zuul::Context.new('Context', obj.id).class?.should be_false
96
+ end
97
+ end
98
+
99
+ describe "#nil?" do
100
+ it "should return true for a nil context" do
101
+ Zuul::Context.new.nil?.should be_true
102
+ end
103
+
104
+ it "should return false for a class context" do
105
+ Zuul::Context.new('Context', nil).nil?.should be_false
106
+ end
107
+
108
+ it "should return false for an instance context" do
109
+ obj = Context.create(:name => "Test Context")
110
+ Zuul::Context.new('Context', obj.id).nil?.should be_false
111
+ end
112
+ end
113
+
114
+ describe "#type" do
115
+ it "should return :nil for a nil context" do
116
+ Zuul::Context.new.type.should == :nil
117
+ end
118
+
119
+ it "should return :class for a class context" do
120
+ Zuul::Context.new('Context', nil).type.should == :class
121
+ end
122
+
123
+ it "should return :instance for an instance context" do
124
+ obj = Context.create(:name => "Test Context")
125
+ Zuul::Context.new('Context', obj.id).type.should == :instance
126
+ end
127
+ end
128
+ end
data/spec/zuul_spec.rb ADDED
@@ -0,0 +1,15 @@
1
+ require 'spec_helper'
2
+
3
+ describe "Zuul" do
4
+ it "should possess a readable configuration object" do
5
+ Zuul.configuration.should be_an_instance_of(Zuul::Configuration)
6
+ end
7
+
8
+ it "should forward calls to configure on to the configuration object" do
9
+ Zuul.should respond_to(:configure)
10
+ Zuul.configure do |config|
11
+ config.should == Zuul.configuration
12
+ end
13
+ end
14
+
15
+ end
metadata CHANGED
@@ -1,87 +1,198 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: zuul
3
- version: !ruby/object:Gem::Version
4
- version: 0.1.1
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
5
+ prerelease:
5
6
  platform: ruby
6
- authors:
7
- - Wes Gibbs
7
+ authors:
8
+ - Mark Rebec
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
-
12
- date: 2009-11-04 00:00:00 -05:00
13
- default_executable:
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
12
+ date: 2013-02-19 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: activesupport
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: activerecord
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: actionpack
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: sqlite3
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
16
79
  name: rspec
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
17
86
  type: :development
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
20
- requirements:
21
- - - ">="
22
- - !ruby/object:Gem::Version
23
- version: 1.2.9
24
- version:
25
- description: A simple authorization solution for Rails apps.
26
- email: wes@hashrocket.com
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ description: Flexible, configurable authorization system for ActiveRecord and an access
95
+ control DSL for ActionController.
96
+ email:
97
+ - mark@markrebec.com
27
98
  executables: []
28
-
29
99
  extensions: []
30
-
31
- extra_rdoc_files:
32
- - LICENSE
33
- - README.rdoc
34
- files:
35
- - .document
36
- - .gitignore
37
- - LICENSE
38
- - README.rdoc
39
- - Rakefile
40
- - VERSION
100
+ extra_rdoc_files: []
101
+ files:
102
+ - lib/tasks/zuul.rake
103
+ - lib/zuul_viz.rb
104
+ - lib/zuul/action_controller/evaluators.rb
105
+ - lib/zuul/action_controller/dsl.rb
106
+ - lib/zuul/active_record/scope.rb
107
+ - lib/zuul/active_record/role.rb
108
+ - lib/zuul/active_record/permission_role.rb
109
+ - lib/zuul/active_record/context.rb
110
+ - lib/zuul/active_record/permission.rb
111
+ - lib/zuul/active_record/subject.rb
112
+ - lib/zuul/active_record/role_subject.rb
113
+ - lib/zuul/active_record/permission_subject.rb
114
+ - lib/zuul/active_record.rb
115
+ - lib/zuul/railtie.rb
116
+ - lib/zuul/action_controller.rb
117
+ - lib/zuul/configuration.rb
118
+ - lib/zuul/version.rb
119
+ - lib/zuul/context.rb
120
+ - lib/zuul/exceptions.rb
121
+ - lib/zuul/exceptions/undefined_scope.rb
122
+ - lib/zuul/exceptions/access_denied.rb
123
+ - lib/zuul/exceptions/invalid_context.rb
124
+ - lib/generators/zuul/permission_subject_generator.rb
125
+ - lib/generators/zuul/role_subject_generator.rb
126
+ - lib/generators/zuul/subject_generator.rb
127
+ - lib/generators/zuul/role_generator.rb
128
+ - lib/generators/zuul/permission_generator.rb
129
+ - lib/generators/zuul/templates/role_subject_existing.rb
130
+ - lib/generators/zuul/templates/role.rb
131
+ - lib/generators/zuul/templates/permission_role.rb
132
+ - lib/generators/zuul/templates/permission_subject_existing.rb
133
+ - lib/generators/zuul/templates/permission_existing.rb
134
+ - lib/generators/zuul/templates/permission.rb
135
+ - lib/generators/zuul/templates/role_subject.rb
136
+ - lib/generators/zuul/templates/role_existing.rb
137
+ - lib/generators/zuul/templates/permission_role_existing.rb
138
+ - lib/generators/zuul/templates/permission_subject.rb
139
+ - lib/generators/zuul/orm_helpers.rb
140
+ - lib/generators/zuul/permission_role_generator.rb
41
141
  - lib/zuul.rb
42
- - lib/zuul/restrict_access.rb
43
- - lib/zuul/valid_roles.rb
44
- - zuul.gemspec
45
- has_rdoc: true
46
- homepage: http://github.com/wgibbs/zuul
142
+ - spec/db/schema.rb
143
+ - spec/zuul_spec.rb
144
+ - spec/spec_helper.rb
145
+ - spec/support/models.rb
146
+ - spec/support/capture_stdout.rb
147
+ - spec/zuul/configuration_spec.rb
148
+ - spec/zuul/active_record/role_spec.rb
149
+ - spec/zuul/active_record/subject_spec.rb
150
+ - spec/zuul/active_record/scope_spec.rb
151
+ - spec/zuul/active_record/permission_spec.rb
152
+ - spec/zuul/active_record/context_spec.rb
153
+ - spec/zuul/active_record/role_subject_spec.rb
154
+ - spec/zuul/active_record/permission_role_spec.rb
155
+ - spec/zuul/active_record/permission_subject_spec.rb
156
+ - spec/zuul/context_spec.rb
157
+ - spec/zuul/active_record_spec.rb
158
+ homepage: http://github.com/markrebec/zuul
47
159
  licenses: []
48
-
49
160
  post_install_message:
50
- rdoc_options:
51
- - --charset=UTF-8
52
- require_paths:
161
+ rdoc_options: []
162
+ require_paths:
53
163
  - lib
54
- required_ruby_version: !ruby/object:Gem::Requirement
55
- requirements:
56
- - - ">="
57
- - !ruby/object:Gem::Version
58
- version: "0"
59
- version:
60
- required_rubygems_version: !ruby/object:Gem::Requirement
61
- requirements:
62
- - - ">="
63
- - !ruby/object:Gem::Version
64
- version: "0"
65
- version:
164
+ required_ruby_version: !ruby/object:Gem::Requirement
165
+ none: false
166
+ requirements:
167
+ - - ! '>='
168
+ - !ruby/object:Gem::Version
169
+ version: '0'
170
+ required_rubygems_version: !ruby/object:Gem::Requirement
171
+ none: false
172
+ requirements:
173
+ - - ! '>='
174
+ - !ruby/object:Gem::Version
175
+ version: '0'
66
176
  requirements: []
67
-
68
177
  rubyforge_project:
69
- rubygems_version: 1.3.5
178
+ rubygems_version: 1.8.24
70
179
  signing_key:
71
180
  specification_version: 3
72
- summary: Simple Rails Authorization
73
- test_files:
74
- - spec/rails_root/app/controllers/application_controller.rb
75
- - spec/rails_root/app/models/user.rb
76
- - spec/rails_root/config/boot.rb
77
- - spec/rails_root/config/database.yml
78
- - spec/rails_root/config/environment.rb
79
- - spec/rails_root/config/environments/test.rb
80
- - spec/rails_root/config/initializers/session_store.rb
81
- - spec/rails_root/config/routes.rb
82
- - spec/rails_root/db/test.sqlite3
83
- - spec/rails_root/log/test.log
84
- - spec/rails_root/spec/controllers/require_user_spec.rb
85
- - spec/rails_root/spec/controllers/restrict_access_spec.rb
86
- - spec/rails_root/spec/models/user_spec.rb
87
- - spec/rails_root/spec/spec_helper.rb
181
+ summary: Authorizaion and ACL for Activerecord and ActionController.
182
+ test_files:
183
+ - spec/db/schema.rb
184
+ - spec/zuul_spec.rb
185
+ - spec/spec_helper.rb
186
+ - spec/support/models.rb
187
+ - spec/support/capture_stdout.rb
188
+ - spec/zuul/configuration_spec.rb
189
+ - spec/zuul/active_record/role_spec.rb
190
+ - spec/zuul/active_record/subject_spec.rb
191
+ - spec/zuul/active_record/scope_spec.rb
192
+ - spec/zuul/active_record/permission_spec.rb
193
+ - spec/zuul/active_record/context_spec.rb
194
+ - spec/zuul/active_record/role_subject_spec.rb
195
+ - spec/zuul/active_record/permission_role_spec.rb
196
+ - spec/zuul/active_record/permission_subject_spec.rb
197
+ - spec/zuul/context_spec.rb
198
+ - spec/zuul/active_record_spec.rb