local.twig 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. {% extends "layout.twig" %}
  2. {% block content %}
  3. <section class="max-w-md mx-auto mt-6">
  4. <div class="rounded-lg border bg-white p-6 dark:bg-slate-800 dark:border-slate-700">
  5. <h1 class="text-xl font-semibold tracking-tight">Local admin sign-in</h1>
  6. <p class="text-slate-600 text-sm mt-1 dark:text-slate-400">
  7. Use this form only while Entra ID is not yet configured. Credentials
  8. come from the <code>LOCAL_ADMIN_*</code> environment variables.
  9. </p>
  10. {% if error %}
  11. <div class="mt-4 rounded-md border border-red-200 bg-red-50 px-3 py-2 text-sm text-red-800 dark:bg-red-900 dark:border-red-800 dark:text-red-200">
  12. Email or password did not match.
  13. </div>
  14. {% endif %}
  15. {% if throttled %}
  16. <div class="mt-4 rounded-md border border-amber-200 bg-amber-50 px-3 py-2 text-sm text-amber-800 dark:bg-amber-900 dark:border-amber-800 dark:text-amber-200">
  17. Too many failed attempts. Please wait a few minutes before trying again.
  18. </div>
  19. {% endif %}
  20. <form method="post" action="/auth/local" hx-boost="true" hx-target="body"
  21. class="mt-4 space-y-3" autocomplete="off">
  22. <input type="hidden" name="_csrf" value="{{ csrfToken }}">
  23. <label class="block">
  24. <span class="text-sm text-slate-700 dark:text-slate-300">Email</span>
  25. <input type="email" name="email" required
  26. value="{{ email }}"
  27. class="mt-1 block w-full rounded-md border-slate-300 shadow-sm
  28. px-3 py-2 border focus:outline-none focus:ring-2
  29. focus:ring-slate-400 dark:bg-slate-800 dark:border-slate-600 dark:text-slate-100 dark:focus:ring-slate-500">
  30. </label>
  31. <label class="block">
  32. <span class="text-sm text-slate-700 dark:text-slate-300">Password</span>
  33. <input type="password" name="password" required autofocus
  34. class="mt-1 block w-full rounded-md border-slate-300 shadow-sm
  35. px-3 py-2 border focus:outline-none focus:ring-2
  36. focus:ring-slate-400 dark:bg-slate-800 dark:border-slate-600 dark:text-slate-100 dark:focus:ring-slate-500">
  37. </label>
  38. <button type="submit"
  39. class="w-full rounded-md bg-slate-900 text-white px-4 py-2 text-sm font-medium hover:bg-slate-800 dark:bg-slate-700 dark:hover:bg-slate-600">
  40. Sign in
  41. </button>
  42. </form>
  43. <p class="text-xs text-slate-500 mt-4 dark:text-slate-400">
  44. <a href="/" class="hover:underline">← Back</a>
  45. </p>
  46. </div>
  47. </section>
  48. {% endblock %}