diff --git a/public/static/style.css b/public/static/style.css index 4fd2214..39b8f80 100644 --- a/public/static/style.css +++ b/public/static/style.css @@ -31,7 +31,6 @@ nav { nav ul { display: flex; - margin: -1px 0 0 0; padding: 0 1.5em; border: 0; border-bottom: 1px solid #000000; diff --git a/src/Auth/AuthMiddleware.php b/src/Auth/AuthMiddleware.php index e32fd38..6738f6e 100644 --- a/src/Auth/AuthMiddleware.php +++ b/src/Auth/AuthMiddleware.php @@ -21,7 +21,8 @@ class AuthMiddleware implements MiddlewareInterface // TODO: Lots of stuff. Session middleware, auth handler class, etc... if ($uri->getPath() !== '/login') { // Check authorization via session - if (empty($_SESSION['user_id'])) { + // TODO username or user ID? + if (empty($_SESSION['username'])) { // Not logged in -> Redirect to /login $response = new Response(); return $response diff --git a/src/Common/UserHelper.php b/src/Common/UserHelper.php index 9d65b55..e67f56b 100644 --- a/src/Common/UserHelper.php +++ b/src/Common/UserHelper.php @@ -19,15 +19,15 @@ class UserHelper public function isLoggedIn(): bool { - return !empty($_SESSION['user_id']); + return !empty($_SESSION['username']); } public function getCurrentUser(): AdminUser { - $userId = $_SESSION['user_id'] ?? null; - if (empty($userId)) { + $username = $_SESSION['username'] ?? null; + if (empty($username)) { throw new RuntimeException('Not logged in!'); } - return $this->adminUserRepository->getUserById($userId); + return $this->adminUserRepository->getUserByName($username); } } diff --git a/src/Dependencies.php b/src/Dependencies.php index ac6fbb4..9f2e901 100644 --- a/src/Dependencies.php +++ b/src/Dependencies.php @@ -5,8 +5,6 @@ namespace MailAccountAdmin; use DI\Container; use MailAccountAdmin\Common\UserHelper; -use MailAccountAdmin\Frontend\Accounts\AccountController; -use MailAccountAdmin\Frontend\Domains\DomainController; use MailAccountAdmin\Frontend\Login\LoginController; use MailAccountAdmin\Frontend\Dashboard\DashboardController; use MailAccountAdmin\Repositories\AdminUserRepository; @@ -66,7 +64,7 @@ class Dependencies ); }); - // Frontend controllers + // Login page $container->set(LoginController::class, function (ContainerInterface $c) { return new LoginController( $c->get(self::TWIG), @@ -74,24 +72,14 @@ class Dependencies $c->get(AdminUserRepository::class), ); }); + + // Dashboard $container->set(DashboardController::class, function (ContainerInterface $c) { return new DashboardController( $c->get(self::TWIG), $c->get(UserHelper::class), ); }); - $container->set(DomainController::class, function (ContainerInterface $c) { - return new DomainController( - $c->get(self::TWIG), - $c->get(UserHelper::class), - ); - }); - $container->set(AccountController::class, function (ContainerInterface $c) { - return new AccountController( - $c->get(self::TWIG), - $c->get(UserHelper::class), - ); - }); return $container; } diff --git a/src/Frontend/Accounts/AccountController.php b/src/Frontend/Accounts/AccountController.php deleted file mode 100644 index d948371..0000000 --- a/src/Frontend/Accounts/AccountController.php +++ /dev/null @@ -1,19 +0,0 @@ -view->render($response, 'accounts.html.twig', $renderData); - } -} diff --git a/src/Frontend/Dashboard/DashboardController.php b/src/Frontend/Dashboard/DashboardController.php index 9e9717e..7538686 100644 --- a/src/Frontend/Dashboard/DashboardController.php +++ b/src/Frontend/Dashboard/DashboardController.php @@ -11,6 +11,13 @@ class DashboardController extends BaseController { public function showDashboard(Request $request, Response $response): Response { - return $this->view->render($response, 'dashboard.html.twig'); + $currentUser = $this->userHelper->getCurrentUser(); + + $renderData = [ + 'username' => $currentUser->getUsername(), + 'user' => $currentUser, + ]; + + return $this->view->render($response, 'dashboard.html.twig', $renderData); } } diff --git a/src/Frontend/Domains/DomainController.php b/src/Frontend/Domains/DomainController.php deleted file mode 100644 index 172e25f..0000000 --- a/src/Frontend/Domains/DomainController.php +++ /dev/null @@ -1,19 +0,0 @@ -view->render($response, 'domains.html.twig', $renderData); - } -} diff --git a/src/Frontend/Login/LoginController.php b/src/Frontend/Login/LoginController.php index c3695fb..73899d9 100644 --- a/src/Frontend/Login/LoginController.php +++ b/src/Frontend/Login/LoginController.php @@ -66,7 +66,7 @@ class LoginController extends BaseController } // Set login session - $_SESSION['user_id'] = $user->getId(); + $_SESSION['username'] = $user->getUsername(); return $response ->withHeader('Location', '/') ->withStatus(303); diff --git a/src/Repositories/AdminUserRepository.php b/src/Repositories/AdminUserRepository.php index 84376f5..31e2a41 100644 --- a/src/Repositories/AdminUserRepository.php +++ b/src/Repositories/AdminUserRepository.php @@ -17,22 +17,6 @@ class AdminUserRepository $this->pdo = $pdo; } - /** - * @throws AdminUserNotFoundException - */ - public function getUserById(int $userId): AdminUser - { - $statement = $this->pdo->prepare('SELECT * FROM admin_users WHERE admin_id = :admin_id LIMIT 1'); - $statement->execute(['admin_id' => $userId]); - - if ($statement->rowCount() < 1) { - throw new AdminUserNotFoundException("Admin with ID '$userId' was not found."); - } - - $row = $statement->fetch(PDO::FETCH_ASSOC); - return AdminUser::createFromArray($row); - } - /** * @throws AdminUserNotFoundException */ diff --git a/src/Routes.php b/src/Routes.php index 03e0b4a..a90372f 100644 --- a/src/Routes.php +++ b/src/Routes.php @@ -3,9 +3,7 @@ declare(strict_types=1); namespace MailAccountAdmin; -use MailAccountAdmin\Frontend\Accounts\AccountController; use MailAccountAdmin\Frontend\Dashboard\DashboardController; -use MailAccountAdmin\Frontend\Domains\DomainController; use MailAccountAdmin\Frontend\Login\LoginController; use Slim\App; @@ -20,13 +18,5 @@ class Routes // Dashboard $app->get('/', DashboardController::class . ':showDashboard'); - - // Domains - $app->get('/domains', DomainController::class . ':showDomains'); - $app->get('/domains/{foo}', DomainController::class . ':showDomains'); - - // Accounts - $app->get('/accounts', AccountController::class . ':showAccounts'); - $app->get('/accounts/{foo}', AccountController::class . ':showAccounts'); } } diff --git a/templates/accounts.html.twig b/templates/accounts.html.twig deleted file mode 100644 index ecfaddd..0000000 --- a/templates/accounts.html.twig +++ /dev/null @@ -1,10 +0,0 @@ -{% extends "base.html.twig" %} - -{% block title %}Accounts{% endblock %} - -{% block content %} -

Accounts

- -

List of accounts ... TODO

-

Test

-{% endblock %} diff --git a/templates/base.html.twig b/templates/base.html.twig index 852e9ff..fde124d 100644 --- a/templates/base.html.twig +++ b/templates/base.html.twig @@ -18,15 +18,9 @@ diff --git a/templates/dashboard.html.twig b/templates/dashboard.html.twig index 36ee56f..2a6f139 100644 --- a/templates/dashboard.html.twig +++ b/templates/dashboard.html.twig @@ -5,5 +5,5 @@ {% block content %}

Dashboard

-

Hello, {{ current_user_name }}!

+

Hello, {{ username }}!

{% endblock %} diff --git a/templates/domains.html.twig b/templates/domains.html.twig deleted file mode 100644 index 6ac7814..0000000 --- a/templates/domains.html.twig +++ /dev/null @@ -1,10 +0,0 @@ -{% extends "base.html.twig" %} - -{% block title %}Domains{% endblock %} - -{% block content %} -

Domains

- -

List of domains ... TODO

-

Test

-{% endblock %}