From 36f82895226c6c2c0d8e6dad6c3e5ace0cf03afc Mon Sep 17 00:00:00 2001
From: Raphael <raphael@joindiaspora.com>
Date: Wed, 18 Aug 2010 10:03:37 -0700
Subject: [PATCH] Fixing retractions on albums, adding back remove_from_view

---
 app/models/album.rb  | 2 +-
 app/models/person.rb | 3 ++-
 app/models/user.rb   | 3 ++-
 3 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/app/models/album.rb b/app/models/album.rb
index 7b9a746aab..b6daabb474 100644
--- a/app/models/album.rb
+++ b/app/models/album.rb
@@ -67,6 +67,6 @@ class Album
   end
 
   def propagate_retraction
-    Retraction.for(self).notify_people
+    self.person.owner.retract(self)
   end
 end
diff --git a/app/models/person.rb b/app/models/person.rb
index f966a40701..26236a5b83 100644
--- a/app/models/person.rb
+++ b/app/models/person.rb
@@ -25,7 +25,7 @@ class Person
 
   timestamps!
 
-  after_destroy :remove_all_traces
+  before_destroy :remove_all_traces
   before_validation :clean_url
   validates_presence_of :email, :url, :profile, :serialized_key 
   validates_format_of :url, :with =>
@@ -92,5 +92,6 @@ class Person
   private
   def remove_all_traces
     Post.all(:person_id => id).each{|p| p.delete}
+    Album.all(:person_id => id).each{|p| p.delete}
   end
  end
diff --git a/app/models/user.rb b/app/models/user.rb
index 12067eee7e..d65114f420 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -91,6 +91,7 @@ class User
   ######### Posts and Such ###############
 
   def retract( post )
+    post.socket_to_uid(self.id)
     retraction = Retraction.for(post)
     retraction.creator_signature = retraction.sign_with_key( encryption_key ) 
     retraction.notify_people
@@ -258,7 +259,7 @@ class User
       self.save
 
       groups = groups_with_person(object.person)
-      object.socket_to_uid(id, :group_id => groups.first.id) if (object.respond_to?(:socket_to_uid) && !self.owns?(object))
+      object.socket_to_uid(id, :group_id => group.id) if (object.respond_to?(:socket_to_uid) && !self.owns?(object))
     end
   end
 
-- 
GitLab