summaryrefslogtreecommitdiff
path: root/classes/User.php
diff options
context:
space:
mode:
authorSarven Capadisli <csarven@status.net>2009-10-03 22:07:41 +0000
committerSarven Capadisli <csarven@status.net>2009-10-03 22:07:41 +0000
commitd1a5a4987514bc786eb270f0cc30300f7328a963 (patch)
tree7181b28c2c1a957e6b50c3336848647e32d03461 /classes/User.php
parent5528c0cd3d66c1acd7bf25b26833e8a107641f35 (diff)
parent6f4c3a6b690dd79cabd4d7529d797fb9e3d504c6 (diff)
Merge branch '0.8.x' of git@gitorious.org:statusnet/mainline into 0.8.x
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 8386f1e18..007662131 100644
--- a/classes/User.php
+++ b/classes/User.php
@@ -689,4 +689,48 @@ class User extends Memcached_DataObject
{
return Design::staticGet('id', $this->design_id);
}
+
+ 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?
+ }
}