fix: login page integree dans layout.php, chemins CSS absolus (#21)
This commit is contained in:
+38
-43
@@ -138,12 +138,12 @@ if (($_SERVER['REQUEST_METHOD'] ?? 'GET') === 'POST') {
|
|||||||
]);
|
]);
|
||||||
$pdo->commit();
|
$pdo->commit();
|
||||||
|
|
||||||
// construit l’URL et ENVOIE le mail ici...
|
// construit l'URL et ENVOIE le mail ici...
|
||||||
$magicUrl = url('/login/magic.php') . '?token=' . urlencode($token);
|
$magicUrl = url('/login/magic.php') . '?token=' . urlencode($token);
|
||||||
/* envoyer_mail_smtp(...) ou mail(...) */
|
/* envoyer_mail_smtp(...) ou mail(...) */
|
||||||
|
|
||||||
// message utilisateur
|
// message utilisateur
|
||||||
$okMsg = "Un lien vient d'être envoyé. Vérifiez votre boîte de réception et le dossier spam/indésirables.";
|
$okMsg = "Un lien vient d’être envoyé. Vérifiez votre boîte de réception et le dossier spam/indésirables.";
|
||||||
|
|
||||||
} catch (\Throwable $ex) {
|
} catch (\Throwable $ex) {
|
||||||
if ($pdo->inTransaction()) {
|
if ($pdo->inTransaction()) {
|
||||||
@@ -156,51 +156,46 @@ if (($_SERVER['REQUEST_METHOD'] ?? 'GET') === 'POST') {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$csrf = Csrf::token();
|
$csrf = Csrf::token();
|
||||||
|
|
||||||
|
ob_start();
|
||||||
?>
|
?>
|
||||||
<!doctype html>
|
<style>.or-sep{display:flex;align-items:center;gap:.75rem;margin:1.25rem 0}.or-sep::before,.or-sep::after{content:"";flex:1;height:1px;background:#ddd}</style>
|
||||||
<html lang="fr">
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
||||||
<title>Connexion</title>
|
|
||||||
<link rel="stylesheet" href="/assets/bootstrap/bootstrap.min.css">
|
|
||||||
<style>.or-sep{display:flex;align-items:center;gap:.75rem;margin:1.25rem 0}.or-sep::before,.or-sep::after{content:"";flex:1;height:1px;background:#ddd}</style>
|
|
||||||
</head>
|
|
||||||
<body class="container py-5">
|
|
||||||
<h1 class="mb-3">Bienvenue 👋</h1>
|
|
||||||
<p class="text-muted">Vous n’êtes pas connecté. Accédez auxfonctionnalités en vous identifiant.</p>
|
|
||||||
|
|
||||||
|
<div class="row justify-content-center">
|
||||||
|
<div class="col-12 col-sm-10 col-md-7 col-lg-5">
|
||||||
|
<h1 class="mb-1">Connexion</h1>
|
||||||
|
<p class="text-muted mb-4">Vous n'êtes pas connecté.</p>
|
||||||
|
|
||||||
<?php foreach ($errors as $e): ?>
|
<?php foreach ($errors as $e): ?>
|
||||||
<div class="alert alert-danger"><?= htmlspecialchars($e, ENT_QUOTES) ?></div>
|
<div class="alert alert-danger"><?= htmlspecialchars($e, ENT_QUOTES) ?></div>
|
||||||
<?php endforeach; ?>
|
<?php endforeach; ?>
|
||||||
<?php if ($okMsg): ?>
|
<?php if ($okMsg): ?>
|
||||||
<div class="alert alert-success"><?= htmlspecialchars($okMsg, ENT_QUOTES) ?></div>
|
<div class="alert alert-success"><?= htmlspecialchars($okMsg, ENT_QUOTES) ?></div>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
|
|
||||||
<?php if ($oidcEnabled): ?>
|
|
||||||
<div class="mb-3">
|
|
||||||
<a class="btn btn-primary w-100" href="<?= htmlspecialchars($oidcLoginUrl, ENT_QUOTES) ?>">Se connecter avec A5L</a>
|
|
||||||
</div>
|
|
||||||
<div class="or-sep"><span>ou</span></div>
|
|
||||||
<?php else: ?>
|
|
||||||
<div class="alert alert-warning">A5L indisponible : configurez <code>OIDC_ISSUER</code> et <code>OIDC_CLIENT_ID</code> dans <code>.env</code>.</div>
|
|
||||||
<div class="or-sep"><span>ou</span></div>
|
|
||||||
<?php endif; ?>
|
|
||||||
|
|
||||||
<form method="post" action="/login<?= $returnTo ? ('?return_to=' . urlencode($returnTo)) : '' ?>" novalidate>
|
|
||||||
<input type="hidden" name="_csrf" value="<?= htmlspecialchars($csrf, ENT_QUOTES) ?>">
|
|
||||||
<div class="mb-3">
|
|
||||||
<label class="form-label" for="email">Adresse email</label>
|
|
||||||
<input class="form-control" id="email" type="email" name="email" required autocomplete="email" inputmode="email" placeholder="vous@domaine.tld">
|
|
||||||
</div>
|
|
||||||
<button class="btn btn-primary" type="submit">Recevoir un lien magique</button>
|
|
||||||
|
|
||||||
</form>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
|
|
||||||
|
|
||||||
|
<?php if ($oidcEnabled): ?>
|
||||||
|
<div class="mb-3">
|
||||||
|
<a class="btn btn-primary w-100" href="<?= htmlspecialchars($oidcLoginUrl, ENT_QUOTES) ?>">Se connecter avec A5L</a>
|
||||||
|
</div>
|
||||||
|
<div class="or-sep"><span>ou</span></div>
|
||||||
|
<?php else: ?>
|
||||||
|
<div class="alert alert-warning">A5L indisponible : configurez <code>OIDC_ISSUER</code> et <code>OIDC_CLIENT_ID</code> dans <code>.env</code>.</div>
|
||||||
|
<div class="or-sep"><span>ou</span></div>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<form method="post" action="/login<?= $returnTo ? ('?return_to=' . urlencode($returnTo)) : '' ?>" novalidate>
|
||||||
|
<input type="hidden" name="_csrf" value="<?= htmlspecialchars($csrf, ENT_QUOTES) ?>">
|
||||||
|
<div class="mb-3">
|
||||||
|
<label class="form-label" for="email">Adresse email</label>
|
||||||
|
<input class="form-control" id="email" type="email" name="email" required autocomplete="email" inputmode="email" placeholder="vous@domaine.tld">
|
||||||
|
</div>
|
||||||
|
<button class="btn btn-primary" type="submit">Recevoir un lien magique</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
$content = ob_get_clean();
|
||||||
|
$title = 'Connexion';
|
||||||
|
include BASE_PATH . '/templates/layout.php';
|
||||||
|
|
||||||
|
|||||||
@@ -33,7 +33,7 @@
|
|||||||
|
|
||||||
<!-- CSS -->
|
<!-- CSS -->
|
||||||
<link href="/assets/css/bootstrap.min.css" rel="stylesheet">
|
<link href="/assets/css/bootstrap.min.css" rel="stylesheet">
|
||||||
<link rel="stylesheet" href="assets/css/style.css">
|
<link rel="stylesheet" href="/assets/css/style.css">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
@@ -93,7 +93,7 @@
|
|||||||
|
|
||||||
<!-- JS -->
|
<!-- JS -->
|
||||||
<script src="/assets/js/bootstrap.bundle.min.js"></script>
|
<script src="/assets/js/bootstrap.bundle.min.js"></script>
|
||||||
<script src="assets/js/app.js"></script>
|
<script src="/assets/js/app.js"></script>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
Reference in New Issue
Block a user