more auth shit
This commit is contained in:
parent
9fc133aeb0
commit
b7377f1446
4 changed files with 86 additions and 13 deletions
|
@ -52,6 +52,53 @@ class Users {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Log a user in
|
||||||
|
public static function login($username, $password) {
|
||||||
|
|
||||||
|
// Check if the user that's trying to log in actually exists
|
||||||
|
if(!$uid = self::userExists($username, false))
|
||||||
|
return [0, 'USER_NOT_EXIST'];
|
||||||
|
|
||||||
|
// Get account data
|
||||||
|
$userData = self::getUser($uid);
|
||||||
|
|
||||||
|
// Validate password
|
||||||
|
if($userData['password_algo'] == 'legacy') { // Shitty legacy method of sha512(strrev(sha512()))
|
||||||
|
|
||||||
|
if(Main::legacyPasswordHash($password) != $userData['password_hash'])
|
||||||
|
return [0, 'INCORRECT_PASSWORD'];
|
||||||
|
|
||||||
|
} else { // Dank ass PBKDF2 hashing
|
||||||
|
|
||||||
|
if(!Hashing::validate_password($password, [
|
||||||
|
$userData['password_algo'],
|
||||||
|
$userData['password_iter'],
|
||||||
|
$userData['password_salt'],
|
||||||
|
$userData['password_hash']
|
||||||
|
]))
|
||||||
|
return [0, 'INCORRECT_PASSWORD'];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// Successful login! (also has a thing for the legacy password system)
|
||||||
|
return [1, ($userData['password_algo'] == 'legacy' ? 'LEGACY_SUCCESS' : 'LOGIN_SUCESS')];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check if a user exists
|
||||||
|
public static function userExists($user, $id = true) {
|
||||||
|
|
||||||
|
// Clean string
|
||||||
|
$user = Main::cleanString($user, true);
|
||||||
|
|
||||||
|
// Do database request
|
||||||
|
$user = Database::fetch('users', true, [($id ? 'id' : 'username_clean') => [$user, '=']]);
|
||||||
|
|
||||||
|
// Return count (which would return 0, aka false, if nothing was found)
|
||||||
|
return count($user) ? $user[0]['id'] : false;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
// Get user data by id
|
// Get user data by id
|
||||||
public static function getUser($id) {
|
public static function getUser($id) {
|
||||||
|
|
||||||
|
|
|
@ -5,10 +5,10 @@
|
||||||
<meta charset="{{ sakura.charset }}" />
|
<meta charset="{{ sakura.charset }}" />
|
||||||
<title>{{ page.title }}</title>
|
<title>{{ page.title }}</title>
|
||||||
<meta name="description" content="Any community that gets its laughs by pretending to be idiots will eventually be flooded by actual idiots who mistakenly believe that they're in good company. Welcome to Flashii." />
|
<meta name="description" content="Any community that gets its laughs by pretending to be idiots will eventually be flooded by actual idiots who mistakenly believe that they're in good company. Welcome to Flashii." />
|
||||||
<meta name="keywords" content="Flashii, Media, Flashwave, Murasaki, Misaka, Circle, Zeniea, MalwareUp, Cybernetics, Saibateku, Community" />
|
<meta name="keywords" content="Flashii, Media, Flashwave,Circle, Zeniea, MalwareUp, Cybernetics, Saibateku, Community" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />
|
||||||
{% if page.redirect %}
|
{% if page.redirect %}
|
||||||
<meta http-equiv="refresh" content="5; URL={{ page.redirect }}" />
|
<meta http-equiv="refresh" content="3; URL={{ page.redirect }}" />
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<!-- CSS -->
|
<!-- CSS -->
|
||||||
<link rel="stylesheet" type="text/css" href="//{{ sakura.urls.content }}/global.css" />
|
<link rel="stylesheet" type="text/css" href="//{{ sakura.urls.content }}/global.css" />
|
||||||
|
|
|
@ -18,22 +18,48 @@ if(
|
||||||
|
|
||||||
switch($_REQUEST['mode']) {
|
switch($_REQUEST['mode']) {
|
||||||
|
|
||||||
|
// Login processing
|
||||||
case 'login':
|
case 'login':
|
||||||
case 'register':
|
|
||||||
case 'forgotpassword':
|
|
||||||
// Add page specific things
|
// Add page specific things
|
||||||
$renderData['page'] = [
|
$renderData['page'] = [
|
||||||
'title' => 'auth test',
|
'title' => 'Login',
|
||||||
'redirect' => $_SERVER['PHP_SELF'],
|
'redirect' => $_SERVER['PHP_SELF'],
|
||||||
'message' => 'meow meow meow meow meow meow meow meow meow meow meow meow'
|
'message' => 'what'
|
||||||
];
|
];
|
||||||
|
|
||||||
// Print page contents
|
break;
|
||||||
print Templates::render('errors/information.tpl', $renderData);
|
|
||||||
exit;
|
// Registration processing
|
||||||
|
case 'register':
|
||||||
|
|
||||||
|
// Add page specific things
|
||||||
|
$renderData['page'] = [
|
||||||
|
'title' => 'Register on Flashii',
|
||||||
|
'redirect' => $_SERVER['PHP_SELF'],
|
||||||
|
'message' => 'what'
|
||||||
|
];
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
// Unforgetting passwords
|
||||||
|
case 'forgotpassword':
|
||||||
|
|
||||||
|
// Add page specific things
|
||||||
|
$renderData['page'] = [
|
||||||
|
'title' => 'Forgot Password',
|
||||||
|
'redirect' => $_SERVER['PHP_SELF'],
|
||||||
|
'message' => 'what'
|
||||||
|
];
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Print page contents
|
||||||
|
print Templates::render('errors/information.tpl', $renderData);
|
||||||
|
exit;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add page specific things
|
// Add page specific things
|
||||||
|
|
|
@ -16,10 +16,10 @@ $renderData['page'] = [
|
||||||
'articleCount' => count($renderData['newsPosts'])
|
'articleCount' => count($renderData['newsPosts'])
|
||||||
];
|
];
|
||||||
$renderData['stats'] = [
|
$renderData['stats'] = [
|
||||||
'userCount' => ($userCount = count($users = Users::getAllUsers())) .' user'. ($userCount == 1 ? '' : 's'),
|
'userCount' => ($userCount = count($users = Users::getAllUsers())) .' user'. ($userCount == 1 ? '' : 's'),
|
||||||
'newestUser' => max($users),
|
'newestUser' => max($users),
|
||||||
'lastRegDate' => ($lastRegDate = date_diff(date_create(date('Y-m-d', max($users)['regdate'])), date_create(date('Y-m-d')))->format('%a')) .' day'. ($lastRegDate == 1 ? '' : 's'),
|
'lastRegDate' => ($lastRegDate = date_diff(date_create(date('Y-m-d', max($users)['regdate'])), date_create(date('Y-m-d')))->format('%a')) .' day'. ($lastRegDate == 1 ? '' : 's'),
|
||||||
'chatOnline' => ($chatOnline = 0) .' user'. ($chatOnline == 1 ? '' : 's')
|
'chatOnline' => ($chatOnline = 0) .' user'. ($chatOnline == 1 ? '' : 's')
|
||||||
];
|
];
|
||||||
|
|
||||||
// Print page contents
|
// Print page contents
|
||||||
|
|
Reference in a new issue