summaryrefslogtreecommitdiff
path: root/modules/comment/comment.module
diff options
context:
space:
mode:
authorAngie Byron <webchick@24967.no-reply.drupal.org>2009-01-08 08:42:13 +0000
committerAngie Byron <webchick@24967.no-reply.drupal.org>2009-01-08 08:42:13 +0000
commit9a32ca468a320bec9769ed3c29c50b5a1f4459b1 (patch)
tree1986a66b2cdb4ca7df540a19427605ef905e9b8d /modules/comment/comment.module
parent1eb5be733ab7df65ffa1713c6c5dbba1558547ff (diff)
downloadbrdo-9a32ca468a320bec9769ed3c29c50b5a1f4459b1.tar.gz
brdo-9a32ca468a320bec9769ed3c29c50b5a1f4459b1.tar.bz2
#8 by sun and most of #drupal: Users can now cancel their accounts. Fixing the 8th issue, almost 8 years later, on January 8th, after working 8 days full-time on it. GREAT WORK :D
Diffstat (limited to 'modules/comment/comment.module')
-rw-r--r--modules/comment/comment.module34
1 files changed, 24 insertions, 10 deletions
diff --git a/modules/comment/comment.module b/modules/comment/comment.module
index 04ddc9d2d..ef4f0ee39 100644
--- a/modules/comment/comment.module
+++ b/modules/comment/comment.module
@@ -697,17 +697,31 @@ function comment_nodeapi_rss_item($node) {
}
/**
- * Implementation of hook_user_delete().
+ * Implementation of hook_user_cancel().
*/
-function comment_user_delete(&$edit, &$user, $category = NULL) {
- db_update('comment')
- ->fields(array('uid' => 0))
- ->condition('uid', $user->uid)
- ->execute();
- db_update('node_comment_statistics')
- ->fields(array('last_comment_uid' => 0))
- ->condition('last_comment_uid', $user->uid)
- ->execute();
+function comment_user_cancel(&$edit, &$account, $method) {
+ switch ($method) {
+ case 'user_cancel_block_unpublish':
+ db_update('comment')->fields(array('status' => 0))->condition('uid', $account->uid)->execute();
+ db_update('node_comment_statistics')->fields(array('last_comment_uid' => 0))->condition('last_comment_uid', $account->uid)->execute();
+ break;
+
+ case 'user_cancel_reassign':
+ db_update('comment')->fields(array('uid' => 0))->condition('uid', $account->uid)->execute();
+ db_update('node_comment_statistics')->fields(array('last_comment_uid' => 0))->condition('last_comment_uid', $account->uid)->execute();
+ break;
+
+ case 'user_cancel_delete':
+ module_load_include('inc', 'comment', 'comment.admin');
+ $comments = db_select('comment', 'c')->fields('c', array('cid'))->condition('uid', $account->uid)->execute()->fetchCol();
+ foreach ($comments as $cid) {
+ $comment = comment_load($cid);
+ // Delete the comment and its replies.
+ _comment_delete_thread($comment);
+ _comment_update_node_statistics($comment->nid);
+ }
+ break;
+ }
}
/**