return error when pool title exists + fix pool error reporting

This commit is contained in:
Daku 2013-12-29 22:24:34 +00:00
parent 59eb6d7ec2
commit 3e240fa78d
2 changed files with 23 additions and 26 deletions

View File

@ -116,7 +116,7 @@ class Pools extends Extension {
$this->theme->new_pool_composer($page); $this->theme->new_pool_composer($page);
} else { } else {
$errMessage = "You must be registered and logged in to create a new pool."; $errMessage = "You must be registered and logged in to create a new pool.";
$this->theme->display_error($errMessage); $this->theme->display_error(401, "Error", $errMessage);
} }
break; break;
@ -127,7 +127,7 @@ class Pools extends Extension {
$page->set_redirect(make_link("pool/view/".$newPoolID)); $page->set_redirect(make_link("pool/view/".$newPoolID));
} }
catch(PoolCreationException $e) { catch(PoolCreationException $e) {
$this->theme->display_error($e->error); $this->theme->display_error(400, "Error", $e->error);
} }
break; break;
@ -173,7 +173,7 @@ class Pools extends Extension {
$page->set_mode("redirect"); $page->set_mode("redirect");
$page->set_redirect(make_link("pool/view/".$pool_id)); $page->set_redirect(make_link("pool/view/".$pool_id));
} else { } else {
$this->theme->display_error("Permssion denied."); $this->theme->display_error(403, "Permission Denied", "You do not have permission to access this page");
} }
} }
break; break;
@ -182,7 +182,7 @@ class Pools extends Extension {
if ($this->have_permission($user, $pool)) { if ($this->have_permission($user, $pool)) {
$this->import_posts($pool_id); $this->import_posts($pool_id);
} else { } else {
$this->theme->display_error("Permssion denied."); $this->theme->display_error(403, "Permission Denied", "You do not have permission to access this page");
} }
break; break;
@ -192,7 +192,7 @@ class Pools extends Extension {
$page->set_mode("redirect"); $page->set_mode("redirect");
$page->set_redirect(make_link("pool/view/".$pool_id)); $page->set_redirect(make_link("pool/view/".$pool_id));
} else { } else {
$this->theme->display_error("Permssion denied."); $this->theme->display_error(403, "Permission Denied", "You do not have permission to access this page");
} }
break; break;
@ -202,7 +202,7 @@ class Pools extends Extension {
$page->set_mode("redirect"); $page->set_mode("redirect");
$page->set_redirect(make_link("pool/view/".$pool_id)); $page->set_redirect(make_link("pool/view/".$pool_id));
} else { } else {
$this->theme->display_error("Permssion denied."); $this->theme->display_error(403, "Permission Denied", "You do not have permission to access this page");
} }
break; break;
@ -215,7 +215,7 @@ class Pools extends Extension {
$page->set_mode("redirect"); $page->set_mode("redirect");
$page->set_redirect(make_link("pool/list")); $page->set_redirect(make_link("pool/list"));
} else { } else {
$this->theme->display_error("Permssion denied."); $this->theme->display_error(403, "Permission Denied", "You do not have permission to access this page");
} }
break; break;
@ -336,14 +336,16 @@ class Pools extends Extension {
*/ */
private function add_pool() { private function add_pool() {
global $user, $database; global $user, $database;
#throw new PoolCreationException("Pool needs a title");
if($user->is_anonymous()) { if($user->is_anonymous()) {
throw new PoolCreationException("You must be registered and logged in to add a image."); throw new PoolCreationException("You must be registered and logged in to add a image.");
} }
if(empty($_POST["title"])) { if(empty($_POST["title"])) {
throw new PoolCreationException("Pool needs a title"); throw new PoolCreationException("Pool title is empty.");
}
if($this->get_single_pool_from_title($_POST["title"])) {
throw new PoolCreationException("A pool using this title already exists.");
} }
$public = $_POST["public"] == "Y" ? "Y" : "N"; $public = $_POST["public"] == "Y" ? "Y" : "N";
$database->execute(" $database->execute("
INSERT INTO pools (user_id, public, title, description, date) INSERT INTO pools (user_id, public, title, description, date)
@ -377,6 +379,16 @@ class Pools extends Extension {
return $database->get_row("SELECT * FROM pools WHERE id=:id", array("id"=>$poolID)); return $database->get_row("SELECT * FROM pools WHERE id=:id", array("id"=>$poolID));
} }
/**
* Retrieve information about a pool given a pool title.
* @param $poolTitle Integer
* @retval 2D array (with only 1 element in the one dimension)
*/
private function get_single_pool_from_title(/*string*/ $poolTitle) {
global $database;
return $database->get_row("SELECT * FROM pools WHERE title=:title", array("title"=>$poolTitle));
}
/** /**
* Get all of the pool IDs that an image is in, given an image ID. * Get all of the pool IDs that an image is in, given an image ID.
* @param $imageID Integer * @param $imageID Integer

View File

@ -389,20 +389,5 @@ class PoolsTheme extends Themelet {
$this->display_paginator($page, "pool/updated", null, $pageNumber, $totalPages); $this->display_paginator($page, "pool/updated", null, $pageNumber, $totalPages);
} }
/**
* Display an error message to the user.
*/
public function display_error(/*int*/ $code, /*string*/ $title, /*string*/ $message) {
global $page;
// Quick n' Dirty fix
$message = $code;
$page->set_title("Error");
$page->set_heading("Error");
$page->add_block(new Block("Error", $errMessage, "main", 10));
}
} }
?> ?>