zuul 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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