diff options
author | Sarven Capadisli <csarven@status.net> | 2009-10-04 10:01:53 +0200 |
---|---|---|
committer | Sarven Capadisli <csarven@status.net> | 2009-10-04 10:01:53 +0200 |
commit | e87a70e20bbe844ec4467bfeed95da2b89df4202 (patch) | |
tree | 8fd017d0a5b95df5ce90688176c0b3a0b8d1d914 /classes/User.php | |
parent | 2e8fcd7059491e4c399be705c474d0a0594e6ddb (diff) | |
parent | 9c460d591e1e11f7aa3970ffd0b3e320dd11d33e (diff) |
Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x
Diffstat (limited to 'classes/User.php')
-rw-r--r-- | classes/User.php | 44 |
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? + } } |