{% extends "base.html" %} {% load i18n %} {% load django_bootstrap5 %} {% load bootstrap_icons %} {% load tags_fingerprint %} {% block title %}{% trans "Profile" %}: {{ request.user.first_name }} {{ request.user.last_name}}{% endblock %} {% block page_heading %}{% trans "Profile" %}: {{ request.user.first_name }} {{ request.user.last_name}}{% endblock page_heading %} {% block content %}
{% csrf_token %} {% bootstrap_form profile_form layout='horizontal' %} {% if perms.accounts.change_password %} {% bs_icon 'lock' %} {% trans "Change Password" %} {% endif %}
{% if publickeys %}
{% for key in publickeys %} {% endfor %}
{{ key.keyname }} ({% ssh_to_fingerprint key.keypublic %}) {% bs_icon 'trash' %}
{% endif %}
{%trans "Add SSH Key" %}
{% csrf_token %} {% bootstrap_form ssh_key_form layout='horizontal' %}

{% blocktrans %}A token lets a script or a tool use the REST API as you, without your password or OTP: send it as Authorization: Token <token>. A password change does not delete tokens: delete a token you no longer use, or one that may have leaked.{% endblocktrans %}

{% if api_tokens %}
{% for token in api_tokens %} {% endfor %}
{% trans "Name" %} {% trans "Starts with" %} {% trans "Created" %} {% trans "Expires" %} {% trans "Last used" %}
{{ token.name }} {{ token.token_key }} {{ token.created|date:"Y-m-d H:i" }} {% if token.expiry %}{{ token.expiry|date:"Y-m-d H:i" }}{% else %}{% trans "never" %}{% endif %} {% if token.last_used %}{{ token.last_used|date:"Y-m-d H:i" }}{% else %}{% trans "never" %}{% endif %} {% bs_icon 'trash' %}
{% endif %}
{% trans "Create an API token" %}
{% csrf_token %} {% bootstrap_form api_token_form layout='horizontal' %}
{% endblock %} {% block script %} {% endblock %}