Allowed single user to be logged in at multiple sessions

This commit is contained in:
Gregorio Chiko Putra 2017-09-08 14:00:28 +07:00
parent 66745e26d5
commit d4dce8e460

View File

@ -110,8 +110,7 @@ class Home
$password = $args['password']; $password = $args['password'];
$user = $this->access->showAll($table, [ $user = $this->access->showAll($table, [
['username', '=', $username], ['username', '=', $username]
['status', '!=', 1]
]); ]);
if ($user == false) { if ($user == false) {
$info = "Invalid username/password"; $info = "Invalid username/password";
@ -119,15 +118,22 @@ class Home
$hash = Hash::compare($password, $user['salt'], $user['password']); $hash = Hash::compare($password, $user['salt'], $user['password']);
if ($hash == true) { if ($hash == true) {
if ($this->access->update($table, ['status' => 1], $user['id']) != true) { if ($user['max_user'] <= 0) {
$info = "There's an error. Please try again."; $info = "Max user reached!";
} else { } else {
Session::put('userid', $user['id']); if ($this->access->update($table, ['status' => 1], $user['id']) != true) {
Session::put('username', $user['username']); $info = "There's an error. Please try again.";
Session::put('full_name', $user['full_name']); } else {
Session::put('privilage', $user['privilage']); $max_user = $user['max_user'] - 1;
if ($this->access->update($table, ['max_user' => $max_user], $user['id']) == true) {
Session::put('userid', $user['id']);
Session::put('username', $user['username']);
Session::put('full_name', $user['full_name']);
Session::put('privilage', $user['privilage']);
$info = "Logged in success"; $info = "Logged in success";
}
}
} }
} }
} }
@ -138,9 +144,21 @@ class Home
public function delete() public function delete()
{ {
$table = 'user'; $table = 'user';
$user = Session::get('userid'); $userid = Session::get('userid');
if ($this->access->update($table, ['status' => 0], $user) != true) { $user = $this->access->showAll($table, [
['id', '=', $userid]
]);
$max_user = $user['max_user'] + 1;
if ($this->access->update(
$table,
[
'status' => 0,
'max_user' => $max_user
],
$userid
) != true) {
throw new \Exception("Bad request", 400); throw new \Exception("Bad request", 400);
} }
return true; return true;