summaryrefslogtreecommitdiff
path: root/classes/User.php
diff options
context:
space:
mode:
authorEvan Prodromou <evan@status.net>2009-10-04 03:07:37 -0400
committerEvan Prodromou <evan@status.net>2009-10-04 03:07:37 -0400
commitc5047fd90ac8f6f057780a34065e320883c7a31f (patch)
tree01af92337e09496587020c49f7cafe0880ebdbbe /classes/User.php
parent18f4a7eaea3c78cb55db843d77b43db86ac70308 (diff)
parentd1a5a4987514bc786eb270f0cc30300f7328a963 (diff)
Merge branch '0.8.x' into 0.9.x
Conflicts: classes/Profile.php
Diffstat (limited to 'classes/User.php')
-rw-r--r--classes/User.php44
1 files changed, 44 insertions, 0 deletions
diff --git a/classes/User.php b/classes/User.php
index 3f7ed09bb..48df0cdd7 100644
--- a/classes/User.php
+++ b/classes/User.php
@@ -740,4 +740,48 @@ class User extends Memcached_DataObject
}
return $result;
}
+
+ function delete()
+ {
+ $profile = $this->getProfile();
+ $profile->delete();
+
+ $related = array('Fave',
+ 'User_openid',
+ 'Confirm_address',
+ 'Remember_me',
+ 'Foreign_link',
+ 'Invitation',
+ );
+
+ if (common_config('inboxes', 'enabled')) {
+ $related[] = 'Notice_inbox';
+ }
+
+ foreach ($related as $cls) {
+ $inst = new $cls();
+ $inst->user_id = $this->id;
+ $inst->delete();
+ }
+
+ $this->_deleteTags();
+ $this->_deleteBlocks();
+
+ parent::delete();
+ }
+
+ function _deleteTags()
+ {
+ $tag = new Profile_tag();
+ $tag->tagger = $this->id;
+ $tag->delete();
+ }
+
+ function _deleteBlocks()
+ {
+ $block = new Profile_block();
+ $block->blocker = $this->id;
+ $block->delete();
+ // XXX delete group block? Reset blocker?
+ }
}