rails-canhaz 0.2.0 → 0.3.0

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