63 lines
1.8 KiB
PHP
63 lines
1.8 KiB
PHP
<?php
|
|
namespace Hpz937\BillReminder\Controller;
|
|
|
|
use Hpz937\BillReminder\Database\SQLiteAdapter;
|
|
use Hpz937\BillReminder\User\User;
|
|
|
|
class AuthController {
|
|
protected $db;
|
|
|
|
public function __construct() {
|
|
$this->db = new SQLiteAdapter();
|
|
}
|
|
|
|
public function showLoginForm() {
|
|
require PROJECT_ROOT . '/views/auth/login.php';
|
|
}
|
|
|
|
public function login() {
|
|
$username = $_POST['username'] ?? '';
|
|
$password = $_POST['password'] ?? '';
|
|
|
|
if (empty($username) || empty($password)) {
|
|
$error = 'Username and password are required.';
|
|
require PROJECT_ROOT . '/views/auth/login.php';
|
|
return;
|
|
}
|
|
|
|
$user = new User($this->db);
|
|
if ($user->login($username, $password)) {
|
|
header('Location: /dashboard');
|
|
exit;
|
|
} else {
|
|
$error = 'Login failed. Please check your credentials.';
|
|
require PROJECT_ROOT . '/views/auth/login.php';
|
|
}
|
|
}
|
|
|
|
public function showRegistrationForm() {
|
|
require PROJECT_ROOT . '/views/auth/register.php';
|
|
}
|
|
|
|
public function register() {
|
|
$username = $_POST['username'] ?? '';
|
|
$password = $_POST['password'] ?? '';
|
|
$email = $_POST['email'] ?? '';
|
|
|
|
if (empty($username) || empty($password) || empty($email)) {
|
|
$error = 'All fields are required.';
|
|
require PROJECT_ROOT . '/views/auth/register.php';
|
|
return;
|
|
}
|
|
|
|
$user = new User($this->db);
|
|
if ($user->register($username, $password, $email)) {
|
|
header('Location: /');
|
|
exit;
|
|
} else {
|
|
$error = 'Registration failed. Please try again.';
|
|
require PROJECT_ROOT . '/views/auth/register.php';
|
|
}
|
|
}
|
|
}
|