remove all reports from user

This commit is contained in:
Shish 2015-02-08 04:27:54 +00:00
parent 610b144fb2
commit f92f286fa0
2 changed files with 36 additions and 0 deletions

View File

@ -76,6 +76,13 @@ class ReportImage extends Extension {
$this->theme->display_error(500, "Missing input", "Missing image ID"); $this->theme->display_error(500, "Missing input", "Missing image ID");
} }
} }
else if($event->get_arg(0) == "remove_reports_by" && $user->check_auth_token()) {
if($user->can("view_image_report")) {
$this->delete_reports_by(int_escape($_POST['user_id']));
$page->set_mode("redirect");
$page->set_redirect(make_link());
}
}
else if($event->get_arg(0) == "list") { else if($event->get_arg(0) == "list") {
if($user->can("view_image_report")) { if($user->can("view_image_report")) {
$this->theme->display_reported_images($page, $this->get_reported_images()); $this->theme->display_reported_images($page, $this->get_reported_images());
@ -100,6 +107,13 @@ class ReportImage extends Extension {
$database->cache->delete("image-report-count"); $database->cache->delete("image-report-count");
} }
public function onUserPageBuilding(UserPageBuildingEvent $event) {
global $page, $user;
if($user->can("view_image_report")) {
$this->theme->get_nuller($event->display_user);
}
}
public function onDisplayingImage(DisplayingImageEvent $event) { public function onDisplayingImage(DisplayingImageEvent $event) {
global $user, $page; global $user, $page;
if($user->can('create_image_report')) { if($user->can('create_image_report')) {
@ -123,6 +137,16 @@ class ReportImage extends Extension {
$database->cache->delete("image-report-count"); $database->cache->delete("image-report-count");
} }
public function onUserDeletion(UserDeletionEvent $event) {
$this->delete_reports_by($event->id);
}
public function delete_reports_by(/*int*/ $user_id) {
global $database;
$database->execute("DELETE FROM image_reports WHERE reporter_id=?", array($user_id));
$database->cache->delete("image-report-count");
}
protected function install() { protected function install() {
global $database, $config; global $database, $config;

View File

@ -84,5 +84,17 @@ class ReportImageTheme extends Themelet {
"; ";
$page->add_block(new Block("Report Image", $html, "left")); $page->add_block(new Block("Report Image", $html, "left"));
} }
public function get_nuller(User $duser) {
global $user, $page;
$html = "
<form action='".make_link("image_report/remove_reports_by")."' method='POST'>
".$user->get_auth_html()."
<input type='hidden' name='user_id' value='{$duser->id}'>
<input type='submit' value='Delete all reports by this user'>
</form>
";
$page->add_block(new Block("Reports", $html, "main", 80));
}
} }