Archived
1
0

Database refactoring and improving blog comments, blog post history and more

This commit is contained in:
Marcel
2019-01-08 22:42:54 +01:00
parent 56aed78b00
commit 7f887a99b0
67 changed files with 3076 additions and 1755 deletions

View File

@@ -28,7 +28,7 @@
return;
}
$encryptedPassword = $this->getPasswordHash($password, $logindata['original_name']);
$encryptedPassword = $this->getPasswordHash($password, $logindata['originalName']);
if ($encryptedPassword == $logindata['password']) {
$this->startLoginSession($logindata, $rememberMe);
@@ -40,15 +40,15 @@
public function getLoginData($username)
{
$this->db->cache_off();
$return = $this->db->query('SELECT * FROM users WHERE (username = lower(?) OR email = lower(?)) AND is_activated = TRUE LIMIT 1',
$return = $this->db->query('SELECT u.ID, u.username, u.displayname, u.originalName, u.email, u.rank, u.loginMethod, u.password, u.isDeleted, s.profilePicture, s.showAds FROM users u INNER JOIN user_settings s ON s.ID = u.ID WHERE (username = lower(?) OR email = lower(?)) AND activated = TRUE LIMIT 1',
[htmlspecialchars($username, ENT_QUOTES), $username])->result_array();
$this->db->cache_on();
return $return;
}
public function getPasswordHash($password, $original_name)
public function getPasswordHash($password, $originalName)
{
$salt = md5($original_name);
$salt = md5($originalName);
$passwordHash = hash('sha256', $salt . $password . $salt);
return $passwordHash;
}
@@ -80,7 +80,7 @@
'displayname' => $displayname,
'rank' => $rank,
'showAds' => $ads,
'profile_picture' => $avatar,
'profilePicture' => $avatar,
) = $logindata;
$this->session->set_userdata('user', [
@@ -131,7 +131,7 @@
public function isAvailable($username)
{
$registered = $this->db->query('SELECT * FROM users WHERE username = lower(?) OR original_name = lower(?)', [$username, $username])->result_array();
$registered = $this->db->query('SELECT * FROM users WHERE username = lower(?) OR originalName = lower(?)', [$username, $username])->result_array();
if (empty($registered)) {
return '';
@@ -144,7 +144,7 @@
{
$encryptedPassword = $this->LoginModel->getPasswordHash($password, strtolower($username));
$activation_key = hash("sha512", uniqid(rand(), true)) . hash("sha512", uniqid(rand(), true));
$this->db->query('INSERT INTO users (original_name, username, displayname, login_method, password, email, rank, is_activated, activation_key) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)', [strtolower($username), strtolower($username), $username, $login_method, $encryptedPassword, $email, 1, false, $activation_key]);
$this->db->query('INSERT INTO users (originalName, username, displayname, login_method, password, email, rank, activated, activation_key) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)', [strtolower($username), strtolower($username), $username, $login_method, $encryptedPassword, $email, 1, false, $activation_key]);
$this->db->cache_delete('admin', 'users');
@@ -178,7 +178,7 @@
public function hashMailExists($emailHash, $activation_key)
{
$results = $this->db->query('SELECT ID FROM users WHERE MD5(email) = ? AND is_activated = 0 AND activation_key = ?', [$emailHash, $activation_key])->result_array();
$results = $this->db->query('SELECT ID FROM users WHERE MD5(email) = ? AND activated = 0 AND activation_key = ?', [$emailHash, $activation_key])->result_array();
if (!empty($results)) {
return $results[0]['ID'];
} else {
@@ -188,7 +188,7 @@
public function activateMail($id)
{
$this->db->query('UPDATE users SET is_activated = 1, activation_key = NULL WHERE ID = ? LIMIT 1', [$id]);
$this->db->query('UPDATE users SET activated = 1, activation_key = NULL WHERE ID = ? LIMIT 1', [$id]);
// Clear cached queries
$username = $this->db->query('SELECT username FROM users WHERE ID = ?', [$id])->result_array();
@@ -199,14 +199,14 @@
public function changeMailAddress($email, $username)
{
$activation_key = hash("sha512", uniqid(rand(), true)) . hash("sha512", uniqid(rand(), true));
$this->db->query('UPDATE users SET email = lower(?), is_activated = FALSE, activation_key = ? WHERE username = ?', [$email, $activation_key, $username]);
$this->db->query('UPDATE users SET email = lower(?), activated = FALSE, activation_key = ? WHERE username = ?', [$email, $activation_key, $username]);
$this->db->cache_delete('admin', 'users');
}
public function changePassword($newPassword, $original_name)
public function changePassword($newPassword, $originalName)
{
$encryptedPassword = $this->getPasswordHash($newPassword, $original_name);
$this->db->query('UPDATE users SET password = ? WHERE original_name = ?', [$encryptedPassword, $original_name]);
$encryptedPassword = $this->getPasswordHash($newPassword, $originalName);
$this->db->query('UPDATE users SET password = ? WHERE originalName = ?', [$encryptedPassword, $originalName]);
}
public function checkPassword($password)