From aee1af4e0ed5b6f0b08a3d490f3ddb7179a3b0ab Mon Sep 17 00:00:00 2001 From: shish Date: Sat, 23 Aug 2008 12:49:47 +0000 Subject: [PATCH] move user stuff into the user class git-svn-id: file:///home/shish/svn/shimmie2/trunk@1004 7f39781d-f577-437e-ae19-be835c7a54ca --- contrib/danbooru_api/main.php | 5 +++-- contrib/ipban/main.php | 2 +- contrib/wiki/main.php | 3 ++- core/database.class.php | 29 ----------------------------- ext/user/main.php | 14 +++++++++----- 5 files changed, 15 insertions(+), 38 deletions(-) diff --git a/contrib/danbooru_api/main.php b/contrib/danbooru_api/main.php index 118dd7ec..3ef31aa0 100644 --- a/contrib/danbooru_api/main.php +++ b/contrib/danbooru_api/main.php @@ -374,6 +374,7 @@ class DanbooruApi implements Extension // or makes them anonymous. Does not set any cookies or anything permanent. private function authenticate_user() { + global $config; global $database; global $user; @@ -384,12 +385,12 @@ class DanbooruApi implements Extension $name = $_REQUEST['login']; $pass = $_REQUEST['password']; $hash = md5( strtolower($name) . $pass ); - $duser = $database->get_user_by_name_and_hash($name, $hash); + $duser = User::by_name_and_hash($config, $database, $name, $hash); if(!is_null($duser)) { $user = $duser; } else { - $user = $database->get_user_by_id($config->get_int("anon_id", 0)); + $user = User::by_id($config, $database, $config->get_int("anon_id", 0)); } } } diff --git a/contrib/ipban/main.php b/contrib/ipban/main.php index 0a74d67f..46cbbd17 100644 --- a/contrib/ipban/main.php +++ b/contrib/ipban/main.php @@ -162,7 +162,7 @@ class IPBan implements Extension { (strstr($row['ip'], '/') && ip_in_range($remote, $row['ip'])) || ($row['ip'] == $remote) ) { - $admin = $database->get_user_by_id($row['banner_id']); + $admin = User::by_id($config, $database, $row['banner_id']); $date = date("Y-m-d", $row['end_timestamp']); print "IP {$row['ip']} has been banned until $date by {$admin->name} because of {$row['reason']}"; diff --git a/contrib/wiki/main.php b/contrib/wiki/main.php index 9054c4f6..a55de856 100644 --- a/contrib/wiki/main.php +++ b/contrib/wiki/main.php @@ -42,8 +42,9 @@ class WikiPage { } public function get_owner() { + global $config; global $database; - return $database->get_user_by_id($this->owner_id); + return User::by_id($config, $database, $this->owner_id); } public function is_locked() { diff --git a/core/database.class.php b/core/database.class.php index deedf6d7..c7480bfb 100644 --- a/core/database.class.php +++ b/core/database.class.php @@ -502,34 +502,5 @@ class Database { $this->execute("DELETE FROM images WHERE id=?", array($id)); } // }}} -// users {{{ - var $SELECT_USER = "SELECT *,(unix_timestamp(now()) - unix_timestamp(joindate))/(60*60*24) AS days_old FROM users "; - - public function get_user_session($name, $session) { - $row = $this->db->GetRow("{$this->SELECT_USER} WHERE name LIKE ? AND md5(concat(pass, ?)) = ?", - array($name, get_session_ip(), $session)); - return $row ? new User($row) : null; - } - - public function get_user_by_id($id) { - assert(is_numeric($id)); - $row = $this->db->GetRow("{$this->SELECT_USER} WHERE id=?", array($id)); - return $row ? new User($row) : null; - } - - public function get_user_by_name($name) { - assert(is_string($name)); - $row = $this->db->GetRow("{$this->SELECT_USER} WHERE name=?", array($name)); - return $row ? new User($row) : null; - } - - public function get_user_by_name_and_hash($name, $hash) { - assert(is_string($name)); - assert(is_string($hash)); - assert(strlen($hash) == 32); - $row = $this->db->GetRow("{$this->SELECT_USER} WHERE name LIKE ? AND pass = ?", array($name, $hash)); - return $row ? new User($row) : null; - } -// }}} } ?> diff --git a/ext/user/main.php b/ext/user/main.php index c6029c29..eeca5307 100644 --- a/ext/user/main.php +++ b/ext/user/main.php @@ -99,8 +99,9 @@ class UserPage implements Extension { } if(($event instanceof PageRequestEvent) && ($event->page_name == "user")) { global $user; + global $config; global $database; - $duser = ($event->count_args() == 0) ? $user : $database->get_user_by_name($event->get_arg(0)); + $duser = ($event->count_args() == 0) ? $user : User::by_name($config, $database, $event->get_arg(0)); if(!is_null($duser)) { send_event(new UserPageBuildingEvent($event->page, $duser)); } @@ -161,8 +162,9 @@ class UserPage implements Extension { if($event instanceof SearchTermParseEvent) { $matches = array(); if(preg_match("/(poster|user)=(.*)/i", $event->term, $matches)) { + global $config; global $database; - $user = $database->get_user_by_name($matches[2]); + $user = User::by_name($config, $database, $matches[2]); if(!is_null($user)) { $user_id = $user->id; } @@ -188,7 +190,7 @@ class UserPage implements Extension { $pass = $_POST['pass']; $hash = md5(strtolower($name) . $pass); - $duser = $database->get_user_by_name_and_hash($name, $hash); + $duser = User::by_name_and_hash($config, $database, $name, $hash); if(!is_null($duser)) { $user = $duser; $this->set_login_cookie($name, $pass); @@ -246,6 +248,7 @@ class UserPage implements Extension { // Things done *to* the user {{{ private function change_password_wrapper($page) { global $user; + global $config; global $database; $page->set_title("Error"); @@ -261,7 +264,7 @@ class UserPage implements Extension { $pass1 = $_POST['pass1']; $pass2 = $_POST['pass2']; - $duser = $database->get_user_by_id($id); + $duser = User::by_id($config, $database, $id); if((!$user->is_admin()) && ($duser->name != $user->name)) { $page->add_block(new Block("Error", @@ -291,6 +294,7 @@ class UserPage implements Extension { private function set_more_wrapper($page) { global $user; + global $config; global $database; $page->set_title("Error"); @@ -306,7 +310,7 @@ class UserPage implements Extension { else { $admin = (isset($_POST['admin']) && ($_POST['admin'] == "on")); - $duser = $database->get_user_by_id($_POST['id']); + $duser = User::by_id($config, $database, $_POST['id']); $duser->set_admin($admin); $page->set_mode("redirect");