rails-canhaz 0.2.0 → 0.3.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.
@@ -24,6 +24,12 @@ module CanHaz
24
24
  type.where('id IN (?)', ids)
25
25
  end
26
26
 
27
+ # Removes all rights on this object
28
+ #
29
+ def not_accessible
30
+ CanHazPermission.destroy_all(['cobject_id = ? AND cobject_type = ?', self.id, self.class.to_s])
31
+ end
32
+
27
33
  def canhaz_object?
28
34
  true
29
35
  end
@@ -17,6 +17,7 @@ module CanHaz
17
17
  #
18
18
  def acts_as_canhaz_object
19
19
  include CanHaz::ModelExtensions::Object
20
+ before_destroy :not_accessible # Removes permission before deleting the object
20
21
  end
21
22
 
22
23
  ##
@@ -24,6 +25,7 @@ module CanHaz
24
25
  #
25
26
  def acts_as_canhaz_subject
26
27
  include CanHaz::ModelExtensions::Subject
28
+ before_destroy :can_do_nothing # Removes permission before deleting the subject
27
29
  end
28
30
 
29
31
  end
data/rails-canhaz.gemspec CHANGED
@@ -1,7 +1,7 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'rails-canhaz'
3
- s.version = '0.2.0'
4
- s.date = '2012-04-27'
3
+ s.version = '0.3.0'
4
+ s.date = '2012-05-20'
5
5
  s.summary = "A simple gem for managing permissions between rails models"
6
6
  s.description = "A simple gem for managing permissions between rails models"
7
7
  s.authors = ["Adrien Siami (Intrepidd)"]
data/test/test_canhaz.rb CHANGED
@@ -216,5 +216,37 @@ class CanHazTest < Test::Unit::TestCase
216
216
 
217
217
  end
218
218
 
219
+ def test_destroy
220
+ s = SubjectModel.new
221
+ o = ObjectModel.new
222
+
223
+ s.save
224
+ o.save
225
+
226
+ id = s.id
227
+
228
+ s.can(:foo, o)
229
+ s.can(:bar, o)
230
+
231
+ s.destroy
232
+
233
+ assert CanHazPermission.find_by_csubject_id(id).nil?
234
+
235
+ s = SubjectModel.new
236
+ o = ObjectModel.new
237
+
238
+ s.save
239
+ o.save
240
+
241
+ id = o.id
242
+
243
+ s.can(:foo, o)
244
+ s.can(:bar, o)
245
+
246
+ o.destroy
247
+
248
+ assert CanHazPermission.find_by_cobject_id(id).nil?
249
+ end
250
+
219
251
  end
220
252
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails-canhaz
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-04-27 00:00:00.000000000 Z
12
+ date: 2012-05-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activerecord
16
- requirement: &9336020 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,7 +21,12 @@ dependencies:
21
21
  version: 3.1.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *9336020
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 3.1.0
25
30
  description: A simple gem for managing permissions between rails models
26
31
  email: adrien@siami.fr
27
32
  executables: []
@@ -67,7 +72,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
67
72
  version: '0'
68
73
  requirements: []
69
74
  rubyforge_project:
70
- rubygems_version: 1.8.11
75
+ rubygems_version: 1.8.23
71
76
  signing_key:
72
77
  specification_version: 3
73
78
  summary: A simple gem for managing permissions between rails models