{% extends "base_generic.html" %} {% load crispy_forms_tags custom_tags bleach_tags settings_tags %} {% block pagetitle %}User Profile{% endblock %} {% block content %} {% get_solo "commandcenter.GeneralConfiguration" as general_config %}
{% if request.user == user %} {{ user.username }} profile image {% else %} {{ user.username }} profile image {% endif %}

Operator profile

{% if user.name %}{{ user.name }}{% else %}{{ user.username }}{% endif %}

@{{ user.username }} {% if user.email %}{{ user.email }}{% endif %} {{ user.timezone }}
{% if request.user == user %}
{{ user.role|capfirst }} {% if user.is_superuser %}Superuser{% elif user.is_staff %}Staff{% else %}Standard access{% endif %}
{% endif %}
{% if request.user == user %}

Account Management

Settings and security

Manage the identity, sign-in methods, and contact channels connected to your account.

{% endif %}

Contact details

User contact information and location

Account email
{% if user.email %}{{ user.email }}{% else %}Unavailable{% endif %}
Report email
{% if user.report_email %}{{ user.report_email }} {% elif user.email %}{{ user.email }} (using account email) {% else %}Unavailable{% endif %}
Phone
{% if user.phone %}{{ user.phone }}{% else %}Unavailable{% endif %}
Timezone
{{ user.timezone }}
{% if request.user == user and user|get_groups %}
Groups
{{ user|get_groups }}
{% endif %}
{% if user.projectassignment_set.all %} {% if request.user|is_privileged or request.user == user %}

Engagements

Active project assignments

{% for assignment in user.projectassignment_set.all %} {% if not assignment.project.complete %} {% endif %} {% endfor %}
Project Role Execution dates
{{ assignment.project.codename|bleach }} {{ assignment.role }} {{ assignment.start_date|date:"DATE_FORMAT" }} – {{ assignment.end_date|date:"DATE_FORMAT" }}
{% endif %} {% endif %} {% if request.user == user %}

Developer access

Personal access tokens

Create credentials for scripts, integrations, and other non-browser access.

Token values are shown once when created or regenerated. Tokens may expire no more than {{ general_config.token_max_lifetime_days }} days from creation. {% if general_config.token_extend_requires_rotation %}Extending an expiry rotates the credential and invalidates its old value.{% else %}Extending an expiry retains the credential; regenerate it when you need to rotate the value.{% endif %}

User tokens

Authenticate as your account and inherit your current permissions.

{% if user.apikey_set.get_usable_keys %}
{% for key in user.apikey_set.get_usable_keys %} {% if key.has_expired %} {% elif key.expires_soon %} {% else %} {% endif %} {% endfor %}
Name Added Expires Last used Options
{{ key.name|bleach }} {{ key.created|date:"d M Y @ H:i:s e" }}{{ key.expiry_date|date:"d M Y @ H:i:s e" }}{{ key.expiry_date|date:"d M Y @ H:i:s e" }} {% if key.expiry_date %} {{ key.expiry_date|date:"d M Y @ H:i:s e" }} {% else %} Never {% endif %} {% if key.last_used_at %} {{ key.last_used_at|date:"d M Y @ H:i:s e" }} {% else %} Never {% endif %}
{% csrf_token %} {% if key.has_expired %} {% else %} {% endif %}

No API tokens to display

Create an API token or show expired credentials if they are hidden.

{% else %}

No API tokens yet

Create an API token for scripts that should inherit your current permissions.

{% endif %}

Service tokens

Authenticate as a non-human principal with explicitly scoped permissions.

{% with service_tokens=user.service_tokens.get_usable_tokens %} {% if service_tokens %}
{% for key in service_tokens %} {% if key.has_expired %} {% elif key.expires_soon %} {% else %} {% endif %} {% endfor %}
Name Added Expires Last used Options
{{ key.name|bleach }} {{ key.created|date:"d M Y @ H:i:s e" }}{{ key.expiry_date|date:"d M Y @ H:i:s e" }}{{ key.expiry_date|date:"d M Y @ H:i:s e" }} {% if key.expiry_date %} {{ key.expiry_date|date:"d M Y @ H:i:s e" }} {% else %} Never {% endif %} {% if key.last_used_at %} {{ key.last_used_at|date:"d M Y @ H:i:s e" }} {% else %} Never {% endif %}
{% csrf_token %} {% if key.has_expired %} {% else %} {% endif %}

No service tokens to display

Create a service token or show expired credentials if they are hidden.

{% else %}

No service tokens yet

Create a service token for a non-human principal with explicit access.

{% endif %} {% endwith %}
{% endif %}
{% endblock %} {% block morescripts %} {% settings_value "TIME_ZONE" as server_time_zone %} {% get_solo "commandcenter.GeneralConfiguration" as general_config %} {% for message in messages %} {% if "api-token" in message.tags or "service-token" in message.tags %} {% endif %} {% endfor %} {% comment %} Include the reusable revoke confirmation modal and related scripts {% endcomment %} {% include "confirm_revoke_modal.html" %} {% endblock %}