mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2025-12-27 05:19:31 +00:00
Merge branch 'user_impersonator'
This commit is contained in:
commit
2362835275
14 changed files with 381 additions and 45 deletions
|
|
@ -37,23 +37,45 @@
|
|||
<li class="nav-item dropdown">
|
||||
<a href="#" class="dropdown-toggle link-anchor nav-link" data-bs-toggle="dropdown" role="button"
|
||||
aria-haspopup="true" aria-expanded="false" id="navbar-user-dropdown-btn" data-bs-reference="window">
|
||||
{% if app.user %}<i class="fa fa-user" aria-hidden="true"></i>{% else %}<i class="far fa-user"
|
||||
aria-hidden="true"></i>{% endif %}
|
||||
{% if app.user %} {# Logged in #}
|
||||
{% if impersonation_active() %} {# Impersonated user #}
|
||||
<i class="fa-solid fa-user-secret text-warning"></i>
|
||||
{% else %}
|
||||
<i class="fas fa-user" aria-hidden="true"></i>
|
||||
{% endif %}
|
||||
{% else %} {# Not logged in #}
|
||||
<i class="far fa-user" aria-hidden="true"></i>
|
||||
{% endif %}
|
||||
<span class="caret"></span></a>
|
||||
<ul class="dropdown-menu dropdown-menu-end" id="login-menu" aria-labelledby="navbar-user-dropdown-btn">
|
||||
{% if app.user %}
|
||||
<a class="dropdown-item disabled" href="#">{% trans %}user.loggedin.label{% endtrans %}
|
||||
{{ helper.user_icon(app.user) }} <b>{{ app.user.firstName }} {{ app.user.lastName }}</b> (@{{ app.user.name }})</a>
|
||||
<a class="dropdown-item" href="{{ path("user_settings") }}"><i class="fa fa-cogs fa-fw"
|
||||
aria-hidden="true"></i> {% trans %}user.settings.label{% endtrans %}
|
||||
{{ helper.user_icon(app.user) }} <b>{{ app.user.firstName }} {{ app.user.lastName }}</b> (@{{ app.user.name }})</a>
|
||||
|
||||
{% if impersonation_active() %}
|
||||
{% set impersonator = impersonator_user() %}
|
||||
<a class="dropdown-item disabled text-warning" href="#">{% trans %}user.impersonated_by.label{% endtrans %}
|
||||
{{ helper.user_icon(impersonator) }} <b>{{ impersonator.firstName }} {{ impersonator.lastName }}</b> (@{{ impersonator.name }})</a>
|
||||
{% endif %}
|
||||
|
||||
|
||||
|
||||
<a class="dropdown-item" href="{{ path("user_settings") }}">
|
||||
<i class="fa fa-cogs fa-fw" aria-hidden="true"></i> {% trans %}user.settings.label{% endtrans %}
|
||||
</a>
|
||||
<a class="dropdown-item" href="{{ path("user_info_self") }}"><i
|
||||
class="fa fa-info-circle fa-fw"
|
||||
aria-hidden="true"></i> {% trans %}user.info.label{% endtrans %}</a>
|
||||
<a class="dropdown-item" href="{{ path("user_info_self") }}">
|
||||
<i class="fa fa-info-circle fa-fw" aria-hidden="true"></i> {% trans %}user.info.label{% endtrans %}</a>
|
||||
<li role="separator" class="dropdown-divider"></li>
|
||||
<a class="dropdown-item" href="{{ path('logout') }}" data-turbo="false" data-turbo-frame="_top"><i
|
||||
class="fa fa-sign-out-alt fa-fw"
|
||||
aria-hidden="true"></i> {% trans %}user.logout{% endtrans %}</a>
|
||||
|
||||
{% if impersonation_active() %}
|
||||
<a class="dropdown-item" href="{{ impersonation_exit_path() }}" data-turbo="false" data-turbo-frame="_top">
|
||||
<i class="fa fa-turn-up fa-fw" aria-hidden="true"></i> {% trans %}user.stop_impersonation{% endtrans %}
|
||||
</a>
|
||||
{% endif %}
|
||||
|
||||
<a class="dropdown-item" href="{{ path('logout') }}" data-turbo="false" data-turbo-frame="_top">
|
||||
<i class="fa fa-sign-out-alt fa-fw" aria-hidden="true"></i> {% trans %}user.logout{% endtrans %}
|
||||
</a>
|
||||
{% else %}
|
||||
<a class="dropdown-item"
|
||||
href="{{ path('login', {'_target_path': app.request.pathinfo | remove_locale_from_path}) }}"
|
||||
|
|
|
|||
|
|
@ -77,21 +77,22 @@
|
|||
|
||||
{{ form_start(form) }}
|
||||
|
||||
|
||||
<ul class="nav nav-pills mb-2">
|
||||
<li class="nav-item">
|
||||
<a data-bs-toggle="tab" class="nav-link link-anchor active" href="#common">{% trans %}admin.common{% endtrans %}</a>
|
||||
</li>
|
||||
{% block additional_pills %}{% endblock %}
|
||||
<li class="nav-item">
|
||||
<a data-bs-toggle="tab" class="nav-link link-anchor" href="#attachments">{% trans %}admin.attachments{% endtrans %}</a>
|
||||
</li>
|
||||
{% if entity.parameters is defined %}
|
||||
{% block nav_pills_container %}
|
||||
<ul class="nav nav-pills mb-2">
|
||||
<li class="nav-item">
|
||||
<a data-bs-toggle="tab" class="nav-link link-anchor" href="#parameters">{% trans %}admin.parameters{% endtrans %}</a>
|
||||
<a data-bs-toggle="tab" class="nav-link link-anchor active" href="#common">{% trans %}admin.common{% endtrans %}</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
{% block additional_pills %}{% endblock %}
|
||||
<li class="nav-item">
|
||||
<a data-bs-toggle="tab" class="nav-link link-anchor" href="#attachments">{% trans %}admin.attachments{% endtrans %}</a>
|
||||
</li>
|
||||
{% if entity.parameters is defined %}
|
||||
<li class="nav-item">
|
||||
<a data-bs-toggle="tab" class="nav-link link-anchor" href="#parameters">{% trans %}admin.parameters{% endtrans %}</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
{% endblock %}
|
||||
|
||||
<!-- Tab panes -->
|
||||
<div class="tab-content">
|
||||
|
|
@ -183,12 +184,12 @@
|
|||
</fieldset>
|
||||
</div>
|
||||
|
||||
<div id="mass_creation" class="tab-pane fade">
|
||||
<div class="row">
|
||||
<p class="text-muted offset-sm-3 col-sm-9">{% trans %}mass_creation.help{% endtrans %}</p>
|
||||
</div>
|
||||
{{ form(mass_creation_form) }}
|
||||
<div id="mass_creation" class="tab-pane fade">
|
||||
<div class="row">
|
||||
<p class="text-muted offset-sm-3 col-sm-9">{% trans %}mass_creation.help{% endtrans %}</p>
|
||||
</div>
|
||||
{{ form(mass_creation_form) }}
|
||||
</div>
|
||||
|
||||
|
||||
{% endif %}
|
||||
|
|
|
|||
|
|
@ -16,6 +16,20 @@
|
|||
<li class="nav-item"><a data-bs-toggle="tab" class="nav-link link-anchor" href="#permissions">{% trans %}user.edit.permissions{% endtrans %}</a></li>
|
||||
{% endblock %}
|
||||
|
||||
{% block nav_pills_container %}
|
||||
|
||||
<div class="d-flex justify-content-between">
|
||||
{{ parent() }}
|
||||
<div>
|
||||
{% if entity.id is not null and is_granted('CAN_SWITCH_USER', entity) %}
|
||||
<a href="{{ impersonation_path(entity) }}" data-turbo="false" class="btn btn-outline-warning"
|
||||
{{ stimulus_controller('elements/link_confirm', {title: 'user.impersonate.confirm.title'|trans, message: 'user.impersonate.confirm.message'|trans}) }}
|
||||
>{% trans %}user.impersonate.btn{% endtrans %}</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% block additional_controls %}
|
||||
{{ form_row(form.group) }}
|
||||
{{ form_row(form.first_name) }}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue