fix(admin): racine du back-office redirige vers /login #91

Merged
Corentin merged 1 commit from fix/admin-root-redirect-login into dev 2026-06-23 09:56:18 +02:00
3 changed files with 35 additions and 32 deletions

View file

@ -8,10 +8,11 @@ use App\Core\Controller;
use App\Core\Response;
/**
* Page d'accueil du back-office. GET /.
* Racine du FQDN admin. GET /.
*
* Volontairement minimale en P2 : prouve que le rendu de vue MVC traverse
* controleur -> vue -> layout sans dependre de la BDD.
* Le back-office n'expose pas de page d'accueil publique : la racine renvoie
* vers la connexion (RG-T02). Une fois authentifie, /login mene l'equipier
* vers role.default_route. La sonde de sante reste sur GET /api/health.
*/
final class HomeController extends Controller
{
@ -20,9 +21,6 @@ final class HomeController extends Controller
*/
public function index(array $params = []): Response
{
return $this->view('home', [
'title' => 'Wakdo back-office',
'appEnv' => $this->config->appEnv(),
]);
return Response::make('', 302, ['Location' => '/login']);
}
}

View file

@ -1,25 +0,0 @@
<?php
declare(strict_types=1);
/**
* Fragment de la page d'accueil back-office, injecte dans layout.php.
*
* @var string $appEnv
*/
$env = htmlspecialchars($appEnv ?? 'unknown', ENT_QUOTES, 'UTF-8');
?>
<main>
<h1>Wakdo back-office</h1>
<p>Le squelette back-end (P2) est en ligne.</p>
<p>
<small>
Coeur MVC from scratch : autoloader PSR-4 manuel, routeur, PDO prepared statements.
Environnement : <code><?= $env ?></code>.
</small>
</p>
<p>
<small>Sonde de sante : <code>GET /api/health</code></small>
</p>
</main>

View file

@ -0,0 +1,30 @@
<?php
declare(strict_types=1);
namespace App\Tests\Unit\Controllers;
use PHPUnit\Framework\TestCase;
use App\Controllers\HomeController;
use App\Core\Config;
use App\Core\Database;
use App\Core\Request;
/**
* La racine du FQDN admin n'est pas une page vitrine : elle renvoie vers la
* connexion (RG-T02). Le redirect ne touche ni la session ni la BDD.
*/
final class HomeControllerTest extends TestCase
{
public function testRootRedirectsToLogin(): void
{
$request = new Request('GET', '/', [], [], '', '203.0.113.5');
$controller = new HomeController($request, new Config(), new Database(new Config()));
$response = $controller->index();
self::assertSame(302, $response->status());
self::assertSame('/login', $response->header('Location'));
self::assertSame('', $response->body());
}
}