--- user.module.orig 2004-10-15 14:28:39.000000000 +0200 +++ user.module 2004-10-25 13:23:08.000000000 +0200 @@ -443,6 +443,7 @@ if ($user->uid) { menu('user', t("my account"), "user_page", 8); menu("user/edit", t("edit account"), "user_page", 0); + menu("user/delete", t("delete account"), "user_page", 1); menu("logout", t("log out"), "user_logout", 10); } else { @@ -871,6 +872,26 @@ return form($output); } +function user_delete() { + global $user; + + $edit = $_POST["edit"]; + + if ($edit['confirm']) { + watchdog("user", "$user->name deactivated her own account."); + db_query("UPDATE {users} SET mail = 'deleted', status = '0' WHERE uid = %d", $user->uid); + $output .= t("Your account has been deactivated."); + user_logout(); + } + else { + $output .= form_item(t("Confirm deletion"), t("You are about to deactivate your own user account. In addition, your e-mail address will be removed from the database.")); + $output .= form_hidden("confirm", 1); + $output .= form_submit(t("Delete account")); + $output = form($output); + } + return $output; +} + function user_edit($edit = array()) { global $user; @@ -1064,6 +1085,14 @@ $GLOBALS["theme"] = init_theme(); print theme('page', $output, t("Edit account")); break; + + case t("Delete account"): + case "delete": + $output = user_delete(); + $GLOBALS["theme"] = init_theme(); + print theme('page', $output, t("Delete account")); + break; + case "view": user_view(arg(2)); break;