From 8eaaa6a7ca49aafae7ed3f4b868f3fd8cfcc06a9 Mon Sep 17 00:00:00 2001 From: NaGeL Date: Thu, 19 Jan 2012 18:23:43 +0100 Subject: [PATCH] Added user deletion. User is deleted from database the Comments are deleted too, unknown reason for me Noting else is deleted so far. --- ext/user/main.php | 29 +++++++++++++++++++++++++++++ ext/user/theme.php | 5 +++++ 2 files changed, 34 insertions(+) diff --git a/ext/user/main.php b/ext/user/main.php index fc0da212..0f1e8027 100644 --- a/ext/user/main.php +++ b/ext/user/main.php @@ -144,6 +144,9 @@ class UserPage extends SimpleExtension { // join (select owner_id,count(*) as comment_count from comments group by owner_id) as _comments on _comments.owner_id=users.id; $this->theme->display_user_list($page, User::by_list(0), $user); } + else if($event->get_arg(0) == "delete_user") { + $this->delete_user($page); + } } if(($event instanceof PageRequestEvent) && $event->page_matches("user")) { @@ -463,6 +466,32 @@ class UserPage extends SimpleExtension { ORDER BY most_recent DESC", array("id"=>$duser->id)); return $rows; } + + private function delete_user($page) { + global $user; + global $config; + global $database; + + $page->set_title("Error"); + $page->set_heading("Error"); + $page->add_block(new NavBlock()); + + if (!$user->is_admin()) { + $page->add_block(new Block("Not Admin", "Only admins can delete accounts")); + } + else if(!isset($_POST['id']) || !is_numeric($_POST['id'])) { + $page->add_block(new Block("No ID Specified", + "You need to specify the account number to edit")); + } + else{ + $database->execute("DELETE FROM users + WHERE id = :id" + , array("id"=>$_POST['id'])); + } + $page->set_mode("redirect"); + $page->set_redirect(make_link("post/list")); + } + // }}} } add_event_listener(new UserPage()); diff --git a/ext/user/theme.php b/ext/user/theme.php index b503d9f6..424099f4 100644 --- a/ext/user/theme.php +++ b/ext/user/theme.php @@ -181,6 +181,11 @@ class UserPageTheme extends Themelet { "; + $html .=" +

".make_form(make_link("user_admin/delete_user"))." + + + "; } return $html; }