summaryrefslogtreecommitdiff
path: root/classes/Profile.php
diff options
context:
space:
mode:
authorEvan Prodromou <evan@controlyourself.ca>2009-07-26 13:06:38 -0600
committerEvan Prodromou <evan@controlyourself.ca>2009-07-26 13:06:38 -0600
commit51ac34e80c5a99008b1a945b2c00b6dbfdde1529 (patch)
tree42f0b79028414b3e73b2168a41e59b6d86153f34 /classes/Profile.php
parenta3a5d23c54bfd2207728a957f370fc83ebfc4c65 (diff)
first version of deleting users
Diffstat (limited to 'classes/Profile.php')
-rw-r--r--classes/Profile.php75
1 files changed, 75 insertions, 0 deletions
diff --git a/classes/Profile.php b/classes/Profile.php
index f926b2cef..0ee6fa657 100644
--- a/classes/Profile.php
+++ b/classes/Profile.php
@@ -461,4 +461,79 @@ class Profile extends Memcached_DataObject
$c->delete(common_cache_key('profile:notice_count:'.$this->id));
}
}
+
+ function delete()
+ {
+ $this->_deleteNotices();
+ $this->_deleteSubscriptions();
+ $this->_deleteMessages();
+ $this->_deleteTags();
+ $this->_deleteBlocks();
+
+ $related = array('Avatar',
+ 'Reply',
+ 'Group_member',
+ );
+
+ foreach ($related as $cls) {
+ $inst = new $cls();
+ $inst->profile_id = $this->id;
+ $inst->delete();
+ }
+
+ parent::delete();
+ }
+
+ function _deleteNotices()
+ {
+ $notice = new Notice();
+ $notice->profile_id = $this->id;
+
+ if ($notice->find()) {
+ while ($notice->fetch()) {
+ $other = clone($notice);
+ $other->delete();
+ }
+ }
+ }
+
+ function _deleteSubscriptions()
+ {
+ $sub = new Subscription();
+ $sub->subscriber = $this->id;
+ $sub->delete();
+
+ $subd = new Subscription();
+ $subd->subscribed = $this->id;
+ $subd->delete();
+ }
+
+ function _deleteMessages()
+ {
+ $msg = new Message();
+ $msg->from_profile = $this->id;
+ $msg->delete();
+
+ $msg = new Message();
+ $msg->to_profile = $this->id;
+ $msg->delete();
+ }
+
+ function _deleteTags()
+ {
+ $tag = new Profile_tag();
+ $tag->tagged = $this->id;
+ $msg->delete();
+ }
+
+ function _deleteBlocks()
+ {
+ $block = new Profile_block();
+ $block->blocked = $this->id;
+ $block->delete();
+
+ $block = new Group_block();
+ $block->blocked = $this->id;
+ $block->delete();
+ }
}