protected_attributes 1.0.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 (41) hide show
  1. data/.gitignore +17 -0
  2. data/.travis.yml +17 -0
  3. data/Gemfile +7 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +111 -0
  6. data/Rakefile +11 -0
  7. data/lib/action_controller/accessible_params_wrapper.rb +29 -0
  8. data/lib/active_model/mass_assignment_security.rb +353 -0
  9. data/lib/active_model/mass_assignment_security/permission_set.rb +40 -0
  10. data/lib/active_model/mass_assignment_security/sanitizer.rb +74 -0
  11. data/lib/active_record/mass_assignment_security.rb +23 -0
  12. data/lib/active_record/mass_assignment_security/associations.rb +116 -0
  13. data/lib/active_record/mass_assignment_security/attribute_assignment.rb +88 -0
  14. data/lib/active_record/mass_assignment_security/core.rb +27 -0
  15. data/lib/active_record/mass_assignment_security/inheritance.rb +18 -0
  16. data/lib/active_record/mass_assignment_security/nested_attributes.rb +148 -0
  17. data/lib/active_record/mass_assignment_security/persistence.rb +81 -0
  18. data/lib/active_record/mass_assignment_security/reflection.rb +9 -0
  19. data/lib/active_record/mass_assignment_security/relation.rb +47 -0
  20. data/lib/active_record/mass_assignment_security/validations.rb +24 -0
  21. data/lib/protected_attributes.rb +14 -0
  22. data/lib/protected_attributes/railtie.rb +18 -0
  23. data/lib/protected_attributes/version.rb +3 -0
  24. data/protected_attributes.gemspec +26 -0
  25. data/test/abstract_unit.rb +156 -0
  26. data/test/accessible_params_wrapper_test.rb +76 -0
  27. data/test/ar_helper.rb +67 -0
  28. data/test/attribute_sanitization_test.rb +929 -0
  29. data/test/mass_assignment_security/black_list_test.rb +20 -0
  30. data/test/mass_assignment_security/permission_set_test.rb +36 -0
  31. data/test/mass_assignment_security/sanitizer_test.rb +50 -0
  32. data/test/mass_assignment_security/white_list_test.rb +19 -0
  33. data/test/mass_assignment_security_test.rb +118 -0
  34. data/test/models/company.rb +105 -0
  35. data/test/models/keyboard.rb +3 -0
  36. data/test/models/mass_assignment_specific.rb +76 -0
  37. data/test/models/person.rb +82 -0
  38. data/test/models/subscriber.rb +5 -0
  39. data/test/models/task.rb +5 -0
  40. data/test/test_helper.rb +3 -0
  41. metadata +199 -0
@@ -0,0 +1,5 @@
1
+ class Subscriber < ActiveRecord::Base
2
+ self.primary_key = 'nick'
3
+ has_many :subscriptions
4
+ has_many :books, :through => :subscriptions
5
+ end
@@ -0,0 +1,5 @@
1
+ class Task < ActiveRecord::Base
2
+ def updated_at
3
+ ending
4
+ end
5
+ end
@@ -0,0 +1,3 @@
1
+ require 'bundler/setup'
2
+ require 'minitest/autorun'
3
+ require 'mocha/api'
metadata ADDED
@@ -0,0 +1,199 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: protected_attributes
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - David Heinemeier Hansson
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-01-22 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: activemodel
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: 4.0.0.beta
22
+ - - <
23
+ - !ruby/object:Gem::Version
24
+ version: '5.0'
25
+ type: :runtime
26
+ prerelease: false
27
+ version_requirements: !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: 4.0.0.beta
33
+ - - <
34
+ - !ruby/object:Gem::Version
35
+ version: '5.0'
36
+ - !ruby/object:Gem::Dependency
37
+ name: activerecord
38
+ requirement: !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: 4.0.0.beta
44
+ - - <
45
+ - !ruby/object:Gem::Version
46
+ version: '5.0'
47
+ type: :development
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: 4.0.0.beta
55
+ - - <
56
+ - !ruby/object:Gem::Version
57
+ version: '5.0'
58
+ - !ruby/object:Gem::Dependency
59
+ name: actionpack
60
+ requirement: !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: 4.0.0.beta
66
+ - - <
67
+ - !ruby/object:Gem::Version
68
+ version: '5.0'
69
+ type: :development
70
+ prerelease: false
71
+ version_requirements: !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: 4.0.0.beta
77
+ - - <
78
+ - !ruby/object:Gem::Version
79
+ version: '5.0'
80
+ - !ruby/object:Gem::Dependency
81
+ name: sqlite3
82
+ requirement: !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ! '>='
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
88
+ type: :development
89
+ prerelease: false
90
+ version_requirements: !ruby/object:Gem::Requirement
91
+ none: false
92
+ requirements:
93
+ - - ! '>='
94
+ - !ruby/object:Gem::Version
95
+ version: '0'
96
+ - !ruby/object:Gem::Dependency
97
+ name: mocha
98
+ requirement: !ruby/object:Gem::Requirement
99
+ none: false
100
+ requirements:
101
+ - - ! '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ none: false
108
+ requirements:
109
+ - - ! '>='
110
+ - !ruby/object:Gem::Version
111
+ version: '0'
112
+ description: Protect attributes from mass assignment in AR models
113
+ email:
114
+ - david@loudthinking.com
115
+ executables: []
116
+ extensions: []
117
+ extra_rdoc_files: []
118
+ files:
119
+ - .gitignore
120
+ - .travis.yml
121
+ - Gemfile
122
+ - LICENSE.txt
123
+ - README.md
124
+ - Rakefile
125
+ - lib/action_controller/accessible_params_wrapper.rb
126
+ - lib/active_model/mass_assignment_security.rb
127
+ - lib/active_model/mass_assignment_security/permission_set.rb
128
+ - lib/active_model/mass_assignment_security/sanitizer.rb
129
+ - lib/active_record/mass_assignment_security.rb
130
+ - lib/active_record/mass_assignment_security/associations.rb
131
+ - lib/active_record/mass_assignment_security/attribute_assignment.rb
132
+ - lib/active_record/mass_assignment_security/core.rb
133
+ - lib/active_record/mass_assignment_security/inheritance.rb
134
+ - lib/active_record/mass_assignment_security/nested_attributes.rb
135
+ - lib/active_record/mass_assignment_security/persistence.rb
136
+ - lib/active_record/mass_assignment_security/reflection.rb
137
+ - lib/active_record/mass_assignment_security/relation.rb
138
+ - lib/active_record/mass_assignment_security/validations.rb
139
+ - lib/protected_attributes.rb
140
+ - lib/protected_attributes/railtie.rb
141
+ - lib/protected_attributes/version.rb
142
+ - protected_attributes.gemspec
143
+ - test/abstract_unit.rb
144
+ - test/accessible_params_wrapper_test.rb
145
+ - test/ar_helper.rb
146
+ - test/attribute_sanitization_test.rb
147
+ - test/mass_assignment_security/black_list_test.rb
148
+ - test/mass_assignment_security/permission_set_test.rb
149
+ - test/mass_assignment_security/sanitizer_test.rb
150
+ - test/mass_assignment_security/white_list_test.rb
151
+ - test/mass_assignment_security_test.rb
152
+ - test/models/company.rb
153
+ - test/models/keyboard.rb
154
+ - test/models/mass_assignment_specific.rb
155
+ - test/models/person.rb
156
+ - test/models/subscriber.rb
157
+ - test/models/task.rb
158
+ - test/test_helper.rb
159
+ homepage: https://github.com/rails/protected_attributes
160
+ licenses: []
161
+ post_install_message:
162
+ rdoc_options: []
163
+ require_paths:
164
+ - lib
165
+ required_ruby_version: !ruby/object:Gem::Requirement
166
+ none: false
167
+ requirements:
168
+ - - ! '>='
169
+ - !ruby/object:Gem::Version
170
+ version: '0'
171
+ required_rubygems_version: !ruby/object:Gem::Requirement
172
+ none: false
173
+ requirements:
174
+ - - ! '>='
175
+ - !ruby/object:Gem::Version
176
+ version: '0'
177
+ requirements: []
178
+ rubyforge_project:
179
+ rubygems_version: 1.8.23
180
+ signing_key:
181
+ specification_version: 3
182
+ summary: Protect attributes from mass assignment in AR models
183
+ test_files:
184
+ - test/abstract_unit.rb
185
+ - test/accessible_params_wrapper_test.rb
186
+ - test/ar_helper.rb
187
+ - test/attribute_sanitization_test.rb
188
+ - test/mass_assignment_security/black_list_test.rb
189
+ - test/mass_assignment_security/permission_set_test.rb
190
+ - test/mass_assignment_security/sanitizer_test.rb
191
+ - test/mass_assignment_security/white_list_test.rb
192
+ - test/mass_assignment_security_test.rb
193
+ - test/models/company.rb
194
+ - test/models/keyboard.rb
195
+ - test/models/mass_assignment_specific.rb
196
+ - test/models/person.rb
197
+ - test/models/subscriber.rb
198
+ - test/models/task.rb
199
+ - test/test_helper.rb