summaryrefslogtreecommitdiff
path: root/classes/User.php
diff options
context:
space:
mode:
authorZach Copley <zach@status.net>2009-10-05 10:05:43 -0700
committerZach Copley <zach@status.net>2009-10-05 10:05:43 -0700
commit2b7d8d0c29a9b28700828db5184ed6d1dc7b1922 (patch)
tree3dd0b4bdbbc421b155750fa77ddd38edd058d136 /classes/User.php
parentee207ffd8be4a7178d06ff7c6928dba3714146ec (diff)
parent7a33125a6c05a885a7e4c6d80be4e0fe26499565 (diff)
Merge branch '0.9.x' into refactor-api
* 0.9.x: (23 commits) Added hook to wrap the notice form data block Unnecessary selector bit Removed obsolete iphone theme (pre v0.7) remove spurious readme from Orbited need to show scripts at end of body in RealtimePlugin Some changes required from Orbited debugging Update OrbitedPlugin to work with RealtimePlugin framework updated OrbitedPlugin to use RealtimePlugin remove unused files for OrbitedPlugin rename plugin copy Comet plugin to Orbited move scripts to just before </body>, add event for scripts that need to be in <head> reformat Notice.php added all them doxygens Using CDATA for autofocus script more doxygen added doxygen indent fix better handling of y response in deleteuser.php script to permanently delete a user ...
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?
+ }
}