Public Access
feat: Authentification sécurisée fonctionnelle et correction du hash bcrypt
Build and Push Docker Image / build-and-push (push) Successful in 34s
Build and Push Docker Image / build-and-push (push) Successful in 34s
This commit is contained in:
1 parent
2d7d93bc27
commit
71d6f51ee0
6 files changed
+721
-14914
No files matched your search
@@ -189,4 +189,30 @@ def render_admin_moderation_panel(utilisateur_cible):
|
||||
),
|
||||
Div(id="admin-result", style="margin-top: 15px; color: #00e5ff;"),
|
||||
cls="admin-panel"
|
||||
)
|
||||
|
||||
def render_login_page(error=None):
|
||||
error_msg = P(error, style="color: #ff4444; text-align: center; font-weight: bold;") if error else ""
|
||||
return Title("Connexion - Aethas38"), Body(
|
||||
Div(
|
||||
Img(src="/Logo/logo_aethas.svg", style="max-width: 180px; margin: 0 auto 20px; display: block;"),
|
||||
H2("Accès Restreint", style="text-align: center; color: #00e5ff;"),
|
||||
error_msg,
|
||||
Form(
|
||||
Div(
|
||||
Label("Email :", style="color: #aaa; font-size: 0.9em;"),
|
||||
Input(type="email", name="email", placeholder="admin@mail.aethas38.duckdns.org", cls="input-field", required=True),
|
||||
style="margin-bottom: 15px;"
|
||||
),
|
||||
Div(
|
||||
Label("Mot de passe :", style="color: #aaa; font-size: 0.9em;"),
|
||||
Input(type="password", name="password", placeholder="••••••••", cls="input-field", required=True),
|
||||
style="margin-bottom: 20px;"
|
||||
),
|
||||
Button("Déverrouiller le système", type="submit", cls="btn-submit", style="width: 100%;"),
|
||||
method="post", action="/login",
|
||||
),
|
||||
style="max-width: 400px; margin: 100px auto; padding: 30px; background: #1a1a1a; border-radius: 10px; border: 1px solid #333; box-shadow: 0 4px 15px rgba(0,229,255,0.1);"
|
||||
),
|
||||
style="background-color: #0d0d0d; color: #fff; font-family: monospace; height: 100vh; display: flex; align-items: center; justify-content: center;"
|
||||
)
|
||||
Reference in new issue
Block a user