patchcenter/app/templates/login.html
Admin MPCZ c2f3d669eb Mode Demo/Reel au login + base patchcenter_demo
- Choix Production/Demo sur la page de login
- Base patchcenter_demo avec schema identique + 10 serveurs mpcz
- Le mode est stocke dans le JWT token
- La session DB bascule automatiquement selon le mode
2026-04-10 19:39:35 +02:00

40 lines
2.0 KiB
HTML

{% extends 'base.html' %}
{% block title %}Connexion{% endblock %}
{% block fullpage %}
<div class="min-h-screen flex items-center justify-center">
<div class="card p-8 w-96">
<div class="text-center mb-6">
<img src="/static/logo_sanef.jpg" alt="SANEF" class="h-12 mx-auto mb-3 rounded" style="opacity:0.9">
<h1 class="text-2xl font-bold text-cyber-accent">PatchCenter</h1>
<p class="text-sm text-gray-500 mt-1">v{{ version }} — SecOps</p>
</div>
{% if error %}
<div class="bg-cyber-red/20 text-cyber-red text-sm p-3 rounded mb-4">{{ error }}</div>
{% endif %}
<form method="POST" action="/login" class="space-y-4">
<div>
<label class="text-xs text-gray-400 block mb-1">Utilisateur</label>
<input type="text" name="username" required autofocus class="w-full" placeholder="username">
</div>
<div>
<label class="text-xs text-gray-400 block mb-1">Mot de passe</label>
<input type="password" name="password" required class="w-full" placeholder="password">
</div>
<div>
<label class="text-xs text-gray-400 block mb-1">Mode</label>
<div class="flex gap-4">
<label class="flex items-center gap-1 text-sm text-gray-300 cursor-pointer">
<input type="radio" name="mode" value="reel" checked class="accent-cyan-500"> Production
</label>
<label class="flex items-center gap-1 text-sm text-gray-300 cursor-pointer">
<input type="radio" name="mode" value="demo" class="accent-yellow-500"> Demo
</label>
</div>
</div>
<button type="submit" class="btn-primary w-full py-2 rounded-md">Connexion</button>
</form>
<p class="text-center text-xs text-gray-600 mt-4">SANEF — Direction des Systèmes d'Information</p>
</div>
</div>
{% endblock %}