| <?php
|
| require_once __DIR__ . '/storage.php';
|
|
|
|
|
| class UserManager {
|
| public function __construct() {
|
| if (session_status() === PHP_SESSION_NONE) {
|
| session_start();
|
| }
|
| }
|
|
|
| public function loginUser($username, $password) {
|
| $users = StorageConfig::getUsers();
|
|
|
| if (!isset($users[$username])) {
|
| return ['success' => false, 'message' => 'User not found'];
|
| }
|
|
|
| if ($users[$username] === $password) {
|
| $_SESSION['username'] = $username;
|
| $_SESSION['logged_in'] = true;
|
|
|
| return ['success' => true, 'message' => 'Login successful'];
|
| } else {
|
| return ['success' => false, 'message' => 'Invalid password'];
|
| }
|
| }
|
|
|
| public function logoutUser() {
|
| session_destroy();
|
| return ['success' => true, 'message' => 'Logged out successfully'];
|
| }
|
|
|
| public function isLoggedIn() {
|
| return isset($_SESSION['logged_in']) && $_SESSION['logged_in'] === true;
|
| }
|
|
|
| public function getCurrentUser() {
|
| if ($this->isLoggedIn()) {
|
| return $_SESSION['username'];
|
| }
|
| return null;
|
| }
|
|
|
| public function requireLogin() {
|
| if (!$this->isLoggedIn()) {
|
| header('Location: index.html');
|
| exit;
|
| }
|
| }
|
| }
|
|
|
|
|
| if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
| header('Content-Type: application/json');
|
|
|
| $userManager = new UserManager();
|
| $action = $_POST['action'] ?? '';
|
|
|
| switch ($action) {
|
| case 'login':
|
| $username = $_POST['username'] ?? '';
|
| $password = $_POST['password'] ?? '';
|
| echo json_encode($userManager->loginUser($username, $password));
|
| break;
|
|
|
| case 'logout':
|
| echo json_encode($userManager->logoutUser());
|
| break;
|
|
|
| case 'check_login':
|
| echo json_encode([
|
| 'logged_in' => $userManager->isLoggedIn(),
|
| 'username' => $userManager->getCurrentUser()
|
| ]);
|
| break;
|
|
|
| default:
|
| echo json_encode(['success' => false, 'message' => 'Invalid action']);
|
| }
|
| exit;
|
| }
|
| ?> |