Changes of the last few months including restructuring system from using only ranks to permissions
This commit is contained in:
@@ -8,6 +8,7 @@
|
||||
{
|
||||
parent::__construct();
|
||||
$this->load->model('NotificationModel', '', TRUE);
|
||||
$this->load->model('UserModel', '', TRUE);
|
||||
$this->load->model('EmailModel', '', TRUE);
|
||||
$this->load->helper('cookie');
|
||||
}
|
||||
@@ -22,19 +23,26 @@
|
||||
}
|
||||
$logindata = $logindata[0];
|
||||
|
||||
if($logindata['isDeleted']) {
|
||||
$_SESSION['notice'] .= '<div class="alert alert-danger alert-dismissible"><button type="button" class="close" data-dismiss="alert" aria-label="Schließen"><span aria-hidden="true">×</span></button><strong>Der Account wurde deaktiviert!</strong> Dein Account wurde vom System deaktiviert, womöglich aufgrund von Fehlverhalten (beispielsweise in Form von anstößigen, unerwünschten, diskriminierenden oder volksverhetzenden Kommentaren, Posts oder Namen). Solltest du dies für ein Fehler halten, nutze bitte das Kontaktformular, um dich <b>höflich</b> zu beschweren.</div>';
|
||||
return;
|
||||
}
|
||||
|
||||
$encryptedPassword = $this->getPasswordHash($password, $logindata['original_name']);
|
||||
|
||||
if ($encryptedPassword == $logindata['password']) {
|
||||
$this->startLoginSession($logindata, $rememberMe);
|
||||
} else {
|
||||
$_SESSION['notice'] .= '<div class="alert alert-danger alert-dismissible"><button type="button" class="close" data-dismiss="alert" aria-label="Schließen"><span aria-hidden="true">×</span></button><strong>Falsche Anmeldedaten!</strong> Benutzername und Passwort stimmen nicht überein!</div>';
|
||||
$_SESSION['notice'] .= '<div class="alert alert-danger alert-dismissible"><button type="button" class="close" data-dismiss="alert" aria-label="Schließen"><span aria-hidden="true">×</span></button><strong>Falsche Anmeldedaten!</strong> Benutzername oder Passwort stimmen nicht mit unseren Akten überein.</div>';
|
||||
}
|
||||
}
|
||||
|
||||
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',
|
||||
[htmlspecialchars($username, ENT_QUOTES), $username])->result_array();
|
||||
$this->db->cache_on();
|
||||
return $return;
|
||||
}
|
||||
|
||||
@@ -47,26 +55,26 @@
|
||||
|
||||
public function startLoginSession($logindata, $rememberMe)
|
||||
{
|
||||
$_SESSION['user']['displayname'] = $logindata['displayname'];
|
||||
$_SESSION['user']['username'] = $logindata['username'];
|
||||
$_SESSION['user']['rank'] = $logindata['rank'];
|
||||
$_SESSION['user']['ID'] = $logindata['ID'];
|
||||
$_SESSION['user']['ads'] = $logindata['showAds'];
|
||||
$profilePic = $logindata['profile_picture'];
|
||||
if (empty($profilePic)) {
|
||||
$_SESSION['user']['profilePic'] = '/assets/images/steam.jpg';
|
||||
} else {
|
||||
$_SESSION['user']['profilePic'] = $profilePic;
|
||||
}
|
||||
$this->reloadLoginSession($logindata);
|
||||
|
||||
$this->db->query('UPDATE users SET isCurrentlyOnline = 1, lastLogin = CURRENT_TIMESTAMP() WHERE ID = ?', [$logindata['ID']]);
|
||||
|
||||
if ($rememberMe == 'on') {
|
||||
$expire = time() + 3600 * 24 * 60;
|
||||
$expire = 3600 * 24 * 60;
|
||||
$userHash = $this->LoginModel->getUserHash($logindata['username'], $logindata['password'], $logindata['email'], $logindata['ID']);
|
||||
var_dump($expire);
|
||||
set_cookie('rememberMe', base64_encode($logindata['username']), $expire, base_url(), '/');
|
||||
set_cookie('token', $userHash, $expire, base_url(), '/');
|
||||
// $this->input->set_cookie('rememberMe', base64_encode($logindata['username']), $expire, base_url(), '/');
|
||||
// $this->input->set_cookie('token', $userHash, $expire, base_url(), '/');
|
||||
|
||||
var_dump(get_cookie('rememberMe'));
|
||||
|
||||
echo 'fresh';
|
||||
var_dump($_COOKIE);
|
||||
$_COOKIE['rememberMe'] = base64_encode($logindata['username']);
|
||||
$_COOKIE['token'] = $userHash;
|
||||
echo 'tech';
|
||||
// var_dump(get_cookie('rememberMe'));
|
||||
// var_dump(get_cookie('token'));
|
||||
var_dump($_COOKIE);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -83,6 +91,8 @@
|
||||
} else {
|
||||
$_SESSION['user']['profilePic'] = $profilePic;
|
||||
}
|
||||
|
||||
$_SESSION['user']['permissions'] = $this->UserModel->getPermissions($logindata['ID']);
|
||||
}
|
||||
|
||||
public function isTrashMail($email)
|
||||
@@ -133,13 +143,16 @@
|
||||
if (isset($_SESSION['loggedOut']) && $_SESSION['loggedOut']) {
|
||||
return;
|
||||
}
|
||||
var_dump('test');
|
||||
if (!isset($_SESSION['user']) && isset($_COOKIE['rememberMe']) && isset($_COOKIE['token'])) {
|
||||
var_dump($_COOKIE);
|
||||
$logindata = $this->getLoginData(base64_decode($_COOKIE['rememberMe']));
|
||||
if (!empty($logindata)) {
|
||||
$logindata = $logindata[0];
|
||||
$token = $this->getUserHash($logindata['username'], $logindata['password'], $logindata['email'], $logindata['ID']);
|
||||
|
||||
if ($_COOKIE['token'] == $token) {
|
||||
echo '<br> TEST! <br>';
|
||||
$this->startLoginSession($logindata, 'on');
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user