{% extends "layouts/dashboard.html" %} {% block extra_head %} {{ block.super }} {% include "components/select2_multiselect_head.html" %} {% endblock %} {% block title %}Edit user — IILMP{% endblock %} {% block breadcrumbs %} {% endblock %} {% block content %}

{{ target_user.get_full_name|default:target_user.email }}

{% if target_user.get_full_name %}{{ target_user.email }} · {% endif %}{% if target_user.get_role_display %}{{ target_user.get_role_display }}{% else %}No role{% endif %} · Joined {{ target_user.date_joined|date:"j M Y" }}

Back to directory
{% include "components/rims_page_intro.html" with eyebrow="Edit user" heading="Update profile, role, and direct permissions." description="The Django group for the selected role stays in sync when you save. Add direct permissions only when this user needs something beyond their role — most accounts should rely on role permissions alone." %}
{% csrf_token %} {% if form.non_field_errors %} {% endif %} {# ── Account (read-only email) ── #}

Email is the sign-in username. Password changes use Forgot password on the login page.

Email

{{ target_user.email }}

{# ── Profile ── #}

Name and phone appear in correspondence and dashboards. Institution is optional.

{{ form.first_name }} {% if form.first_name.errors %}

{{ form.first_name.errors.0 }}

{% endif %}
{{ form.last_name }} {% if form.last_name.errors %}

{{ form.last_name.errors.0 }}

{% endif %}
{{ form.phone }} {% if form.phone.help_text %}

{{ form.phone.help_text }}

{% endif %} {% if form.phone.errors %}

{{ form.phone.errors.0 }}

{% endif %}
{{ form.institution }} {% if form.institution.help_text %}

{{ form.institution.help_text }}

{% endif %} {% if form.institution.errors %}

{{ form.institution.errors.0 }}

{% endif %}
{# ── Access ── #}

Role drives permissions via its Django group. Inactive users cannot sign in.

{{ form.role }}

Drives most permission logic via its matching Django group.

{% if form.role.errors %}

{{ form.role.errors.0 }}

{% endif %}
{{ form.additional_roles }} {% if form.additional_roles.help_text %}

{{ form.additional_roles.help_text }}

{% endif %} {% if form.additional_roles.errors %}

{{ form.additional_roles.errors.0 }}

{% endif %}
{% if "is_staff" in form.fields %} {% endif %}
{% if form.is_active.errors or form.is_staff.errors %}
{% if form.is_active.errors %}{{ form.is_active.errors.0 }}{% endif %} {% if form.is_staff.errors %}{{ form.is_staff.errors.0 }}{% endif %}
{% endif %}
{# ── Direct permissions ── #}

{{ form.user_permissions.help_text }}

{{ form.user_permissions }} {% if form.user_permissions.errors %}

{{ form.user_permissions.errors.0 }}

{% endif %}
Back to list
{% endblock %} {% block extra_js %} {{ block.super }} {% include "components/select2_multiselect_init_js.html" with select_id=form.additional_roles.id_for_label placeholder="Search custom roles to add" %} {% include "components/select2_multiselect_init_js.html" with select_id=form.user_permissions.id_for_label placeholder="Search permissions to add" %} {% endblock %}