fix(admin): racine du back-office redirige vers /login
All checks were successful
CI / secret-scan (push) Successful in 15s
CI / php-lint (push) Successful in 23s
CI / static-tests (push) Successful in 54s
CI / js-tests (push) Successful in 30s
CI / secret-scan (pull_request) Successful in 10s
CI / php-lint (pull_request) Successful in 25s
CI / static-tests (pull_request) Successful in 57s
CI / js-tests (pull_request) Successful in 30s

La page d'accueil affichait un placeholder perime (squelette P2) alors que
P3/P4 sont livres : un acces a la racine admin sous-vendait le projet. Le
back-office n'a pas vocation a exposer une page vitrine publique -> la racine
renvoie en 302 vers /login (RG-T02), qui mene ensuite a role.default_route.
Vue home.php supprimee (code mort). Sonde GET /api/health inchangee.
This commit is contained in:
Imugiii 2026-06-23 07:51:54 +00:00
parent 82adc77879
commit 4df98c36fd
3 changed files with 35 additions and 32 deletions

View file

@ -8,10 +8,11 @@ use App\Core\Controller;
use App\Core\Response; 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 * Le back-office n'expose pas de page d'accueil publique : la racine renvoie
* controleur -> vue -> layout sans dependre de la BDD. * 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 final class HomeController extends Controller
{ {
@ -20,9 +21,6 @@ final class HomeController extends Controller
*/ */
public function index(array $params = []): Response public function index(array $params = []): Response
{ {
return $this->view('home', [ return Response::make('', 302, ['Location' => '/login']);
'title' => 'Wakdo back-office',
'appEnv' => $this->config->appEnv(),
]);
} }
} }

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());
}
}