login.html 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. {# User login page. Extends base.html directly to override normal UI layout. #}
  2. {% extends 'base/base.html' %}
  3. {% load form_helpers %}
  4. {% load static %}
  5. {% block layout %}
  6. <main class="login-container text-center">
  7. {# Login banner #}
  8. {% if config.BANNER_LOGIN %}
  9. <div class="alert alert-secondary mw-90 mw-md-75 mw-lg-80 mw-xl-75 mw-xxl-50" role="alert">
  10. {{ config.BANNER_LOGIN|safe }}
  11. </div>
  12. {% endif %}
  13. {# Login form #}
  14. <div class="form-login">
  15. <form action="{% url 'login' %}" method="post">
  16. {% csrf_token %}
  17. {# Logo #}
  18. <div class="mb-4">
  19. <img src="{% static 'netbox_logo.svg' %}" height="80" alt="NetBox logo" />
  20. </div>
  21. {# Set post-login URL #}
  22. {% if 'next' in request.GET %}
  23. <input type="hidden" name="next" value="{{ request.GET.next }}" />
  24. {% endif %} {% if 'next' in request.POST %}
  25. <input type="hidden" name="next" value="{{ request.POST.next }}" />
  26. {% endif %}
  27. {{ form.username }}
  28. {{ form.password }}
  29. <button type="submit" class="btn btn-primary btn-lg w-100 mt-4">
  30. Sign In
  31. </button>
  32. </form>
  33. </div>
  34. {# TODO: Improve the design & layout #}
  35. {% if auth_backends %}
  36. <h6 class="mt-4">Or use an SSO provider:</h6>
  37. {% for name, backend in auth_backends.items %}
  38. <h4><a href="{% url 'social:begin' backend=name %}" class="my-2">{{ name }}</a></h4>
  39. {% endfor %}
  40. {% endif %}
  41. {# Login form errors #}
  42. {% if form.non_field_errors %}
  43. <div class="alert alert-danger" role="alert">
  44. <h4 class="alert-heading">Errors</h4>
  45. <p>
  46. {{ form.non_field_errors }}
  47. </p>
  48. </div>
  49. {% endif %}
  50. </main>
  51. {# Page footer #}
  52. <footer class="footer container-fluid login-footer p-3">
  53. <div class="row align-items-center w-100">
  54. <div class="col-2 col-md-1 mb-0">
  55. <button type="button" class="btn btn-sm color-mode-toggle" title="Toggle Color Mode">
  56. <i class="color-mode-icon mdi mdi-lightbulb"></i>&nbsp;
  57. </button>
  58. </div>
  59. <div class="col-1 col-md-auto mb-0"></div>
  60. <div class="col text-end mb-0">
  61. <small class="text-muted">
  62. {{ settings.HOSTNAME }} (v{{ settings.VERSION }})
  63. </small>
  64. </div>
  65. </div>
  66. </footer>
  67. {% endblock layout %}