Andmin akses admin
This commit is contained in:
parent
e8c4b6fa90
commit
d44d584918
@ -8,13 +8,13 @@ use App\Services\ApkService;
|
|||||||
class AdminController extends Controller {
|
class AdminController extends Controller {
|
||||||
|
|
||||||
private function checkAuth() {
|
private function checkAuth() {
|
||||||
if (!isset($_SESSION['user_id'])) {
|
if (!isset($_SESSION['user_id']) || ($_SESSION['role'] ?? '') !== 'admin') {
|
||||||
$this->redirect('/admin/login');
|
$this->redirect('/admin/login');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function loginForm() {
|
public function loginForm() {
|
||||||
if (isset($_SESSION['user_id'])) {
|
if (isset($_SESSION['user_id']) && ($_SESSION['role'] ?? '') === 'admin') {
|
||||||
$this->redirect('/admin/dashboard');
|
$this->redirect('/admin/dashboard');
|
||||||
}
|
}
|
||||||
$this->view('admin/login');
|
$this->view('admin/login');
|
||||||
@ -25,16 +25,17 @@ class AdminController extends Controller {
|
|||||||
$password = $_POST['password'] ?? '';
|
$password = $_POST['password'] ?? '';
|
||||||
|
|
||||||
$db = db_pdo();
|
$db = db_pdo();
|
||||||
$stmt = $db->prepare("SELECT * FROM users WHERE username = ?");
|
$stmt = $db->prepare("SELECT * FROM users WHERE username = ? AND role = 'admin'");
|
||||||
$stmt->execute([$username]);
|
$stmt->execute([$username]);
|
||||||
$user = $stmt->fetch();
|
$user = $stmt->fetch();
|
||||||
|
|
||||||
if ($user && password_verify($password, $user['password'])) {
|
if ($user && password_verify($password, $user['password'])) {
|
||||||
$_SESSION['user_id'] = $user['id'];
|
$_SESSION['user_id'] = $user['id'];
|
||||||
$_SESSION['username'] = $user['username'];
|
$_SESSION['username'] = $user['username'];
|
||||||
|
$_SESSION['role'] = $user['role'];
|
||||||
$this->redirect('/admin/dashboard');
|
$this->redirect('/admin/dashboard');
|
||||||
} else {
|
} else {
|
||||||
$error = "Invalid username or password";
|
$error = "Invalid username or password, or you are not an admin";
|
||||||
$this->view('admin/login', ['error' => $error]);
|
$this->view('admin/login', ['error' => $error]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -344,4 +345,4 @@ class AdminController extends Controller {
|
|||||||
$text = strtolower($text);
|
$text = strtolower($text);
|
||||||
return empty($text) ? 'n-a' : $text;
|
return empty($text) ? 'n-a' : $text;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user