login.html 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  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="mw-90 mw-md-75 mw-lg-80 mw-xl-75 mw-xxl-50">
  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. {% if auth_backends %}
  35. <h6 class="mt-4 mb-3">Or use a single sign-on (SSO) provider:</h6>
  36. {% for name, display in auth_backends.items %}
  37. <h5>
  38. {% if display.1 %}<i class="mdi mdi-{{ display.1 }}"></i>{% endif %}
  39. <a href="{% url 'social:begin' backend=name %}" class="my-2">{{ display.0 }}</a>
  40. </h5>
  41. {% endfor %}
  42. {% endif %}
  43. {# Login form errors #}
  44. {% if form.non_field_errors %}
  45. <div class="alert alert-danger" role="alert">
  46. <h4 class="alert-heading">Errors</h4>
  47. <p>
  48. {{ form.non_field_errors }}
  49. </p>
  50. </div>
  51. {% endif %}
  52. </main>
  53. {# Page footer #}
  54. <footer class="footer container-fluid login-footer p-3">
  55. <div class="row align-items-center w-100">
  56. <div class="col-2 col-md-1 mb-0">
  57. <button type="button" class="btn btn-sm color-mode-toggle" title="Toggle Color Mode">
  58. <i class="color-mode-icon mdi mdi-lightbulb"></i>&nbsp;
  59. </button>
  60. </div>
  61. <div class="col-1 col-md-auto mb-0"></div>
  62. <div class="col text-end mb-0">
  63. <small class="text-muted">
  64. {{ settings.HOSTNAME }} (v{{ settings.VERSION }})
  65. </small>
  66. </div>
  67. </div>
  68. </footer>
  69. {% endblock layout %}