177 lines
10 KiB
Twig
177 lines
10 KiB
Twig
{% extends 'base.html.twig' %}
|
|
|
|
{% block body %}
|
|
|
|
<div class="w-100 h-100 p-5 m-auto">
|
|
<div class="card p-3 m-3 border-0">
|
|
|
|
{% if is_granted("ROLE_ADMIN") %}
|
|
<div class="card-header border-0 d-flex justify-content-between align-items-center ">
|
|
<div class="card-title">
|
|
<h1>Gestion Utilisateur</h1>
|
|
</div>
|
|
<div class="d-flex gap-2">
|
|
{% if is_granted("ROLE_SUPER_ADMIN") %}
|
|
<a href="{{ path('user_delete', {'id': user.id}) }}"
|
|
class="btn btn-secondary">Supprimer</a>
|
|
{% if user.active %}
|
|
<a href="{{ path('user_deactivate', {'id': user.id}) }}"
|
|
class="btn btn-secondary">Désactiver l'utilisateur</a>
|
|
{% else %}
|
|
<a href="{{ path('user_activate', {'id': user.id}) }}" class="btn btn-primary ">Activer
|
|
l'utilisateur</a>
|
|
{% endif %}
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
|
|
<div class="card-body">
|
|
|
|
{% include 'user/userInformation.html.twig' %}
|
|
|
|
|
|
<div class="card border-0 no-header-bg ">
|
|
<div class="card-header">
|
|
{% if orgs|length >0 %}
|
|
<div class="card-title">
|
|
<h1>Vos applications</h1>
|
|
</div>
|
|
{% else %}
|
|
<div class="card-title">
|
|
<h1>Aucune application</h1>
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
|
|
|
|
<div class="card-body">
|
|
<div class="row g-2">
|
|
{% for app in apps %}
|
|
<div class="col-12 col-md-6">
|
|
<div class="card h-100">
|
|
<div class="card-header d-flex gap-2">
|
|
{% if app.logoMiniUrl %}
|
|
<img src="{{ aws_url ~ app.logoMiniUrl }}" alt="Logo {{ app.name }}"
|
|
class="rounded-circle" style="width:50px; height:50px;">
|
|
{% endif %}
|
|
<div class="card-title">
|
|
<h1>{{ app.name|title }}</h1>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="card-body">
|
|
<div class="row">
|
|
<p><b>Description
|
|
:</b> {{ app.descriptionSmall|default('Aucune description disponible.')|raw }}
|
|
</p>
|
|
</div>
|
|
{# EDITABLE if admin and exactly one UO #}
|
|
{% if canEditRoles and data.singleUo is not null %}
|
|
<form method="POST"
|
|
action="{{ path('user_application_role', { id: data.singleUo.id }) }}">
|
|
{# for this app, find its grouped info #}
|
|
{# Find the group for this specific app #}
|
|
{% set appGroup = null %}
|
|
{% for group in data.uoas|default([]) %}
|
|
{% if group.application.id == app.id %}
|
|
{% set appGroup = group %}
|
|
{% endif %}
|
|
{% endfor %}
|
|
|
|
<div class="form-group mb-3">
|
|
<label for="roles-{{ app.id }}"><b>Rôles :</b></label>
|
|
<div class="form-check">
|
|
|
|
{% if appGroup %}
|
|
{# Use rolesArray: filtered by current user's level (no SUPER ADMIN for plain ADMIN, etc.) #}
|
|
{% for role in appGroup.rolesArray %}
|
|
<input class="form-check-input" type="checkbox"
|
|
name="roles[]"
|
|
value="{{ role.id }}"
|
|
id="role-{{ role.id }}-app-{{ app.id }}"
|
|
{% if role.id in appGroup.selectedRoleIds %}checked{% endif %}>
|
|
<label class="form-check"
|
|
for="role-{{ role.id }}-app-{{ app.id }}">
|
|
{% if role.name == 'USER' %}
|
|
Accès
|
|
{% else %}
|
|
{{ role.name|capitalize }}
|
|
{% endif %}
|
|
</label>
|
|
{% endfor %}
|
|
|
|
{% else %}
|
|
|
|
<p class="text-muted">Aucun rôle défini pour cette
|
|
application.</p>
|
|
|
|
{% endif %}
|
|
</div>
|
|
<button type="submit" name="appId" value="{{ app.id }}"
|
|
class="btn btn-primary mt-2">
|
|
Sauvegarder
|
|
</button>
|
|
</div>
|
|
</form>
|
|
|
|
{# READ ONLY otherwise #}
|
|
{% else %}
|
|
{% set appGroup = null %}
|
|
{% for group in data.uoas|default([]) %}
|
|
{% if group.application.id == app.id %}
|
|
{% set appGroup = group %}
|
|
{% endif %}
|
|
{% endfor %}
|
|
|
|
<div class="form-group mb-3">
|
|
<label for="roles-{{ app.id }}"><b>Rôles :</b></label>
|
|
<div class="form-check">
|
|
|
|
{% if appGroup %}
|
|
{# Use rolesArray: filtered by current user's level (no SUPER ADMIN for plain ADMIN, etc.) #}
|
|
{% for role in appGroup.rolesArray %}
|
|
<input class="form-check-input" type="checkbox"
|
|
disabled
|
|
name="roles[]"
|
|
value="{{ role.id }}"
|
|
id="role-{{ role.id }}-app-{{ app.id }}"
|
|
{% if appGroup and role.id in appGroup.selectedRoleIds %}checked{% endif %}>
|
|
<label class="form-check"
|
|
for="role-{{ role.id }}-app-{{ app.id }}">
|
|
{% if role.name == 'USER' %}
|
|
Accès
|
|
{% else %}
|
|
{{ role.name|capitalize }}
|
|
{% endif %}
|
|
</label>
|
|
{% endfor %}
|
|
{% else %}
|
|
<p class="text-muted">Aucun rôle défini pour cette
|
|
application.</p>
|
|
{% endif %}
|
|
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endfor %}
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
{% endblock %}
|
|
|
|
{% block title %}
|
|
|
|
{% endblock %}
|
|
|