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");