Rajoute une page listant les admins et des icônes pour voir plus facilement les permissions

This commit is contained in:
Tom Hubrecht 2021-09-06 15:38:25 +02:00
parent 77e085458c
commit f65c3a991a
8 changed files with 214 additions and 73 deletions

View file

@ -2,29 +2,27 @@
{% load i18n %}
{% block extra_head %}
{% block custom_js %}
<script>
function initSearch(input) {
const $search = document.getElementById(input);
const $users = $search.closest('div.panel').querySelectorAll('a.panel-block') || [];
const s = _id(input);
const us = _$('a.panel-block', s.closest('div.panel'));
$search.addEventListener('input', () => {
const username = $search.value.toLowerCase();
s.addEventListener('input', () => {
const username = s.value.toLowerCase();
$users.forEach(user => {
if (user.id.includes(username)) {
user.classList.remove('is-hidden');
us.forEach(u => {
if (u.id.includes(username)) {
u.classList.remove('is-hidden');
} else {
user.classList.add('is-hidden');
u.classList.add('is-hidden');
}
});
});
}
document.addEventListener('DOMContentLoaded', () => {
initSearch('pwd_search');
initSearch('cas_search');
});
initSearch('pwd_search');
initSearch('cas_search');
</script>
{% endblock %}
@ -54,10 +52,28 @@
{# List of users #}
{% for u in pwd_users %}
<a class="panel-block" href="{% url 'auth.permissions' %}?user={{ u.username }}" id={{ u.base_username|lower }}>
<span class="panel-icon">
<i class="fas fa-user-cog"></i>
</span>
<span class="ml-2">{{ u.full_name }} ({{ u.base_username }})</span>
<div class="level is-mobile is-flex-grow-1">
<div class="level-left is-flex-shrink-1 pr-3">
<span class="panel-icon">
<i class="fas fa-user-cog"></i>
</span>
<span class="ml-2" style="overlay=clip">{{ u.full_name }} ({{ u.base_username }})</span>
</div>
<div class="level-right">
<span class="panel-icon has-text-{% if u in e_manager %}primary{% else %}grey-lighter{% endif %}">
<i class="fas fa-vote-yea"></i>
</span>
<span class="panel-icon has-text-{% if u in f_manager %}primary{% else %}grey-lighter{% endif %}">
<i class="fas fa-question"></i>
</span>
<span class="panel-icon has-text-{% if u.is_staff %}danger{% else %}grey-lighter{% endif %}">
<i class="fas fa-user-shield"></i>
</span>
</div>
</div>
</a>
{% endfor %}
</div>
@ -81,10 +97,28 @@
{# List of users #}
{% for u in cas_users %}
<a class="panel-block" href="{% url 'auth.permissions' %}?user={{ u.username }}" id={{ u.base_username|lower }}>
<span class="panel-icon">
<i class="fas fa-user-cog"></i>
</span>
<span class="ml-2">{{ u.full_name }} ({{ u.base_username }})</span>
<div class="level is-mobile is-flex-grow-1">
<div class="level-left is-flex-shrink-1 pr-3">
<span class="panel-icon">
<i class="fas fa-user-cog"></i>
</span>
<span class="ml-2">{{ u.full_name }} ({{ u.base_username }})</span>
</div>
<div class="level-right">
<span class="panel-icon has-text-{% if u in e_manager %}primary{% else %}grey-lighter{% endif %}">
<i class="fas fa-vote-yea"></i>
</span>
<span class="panel-icon has-text-{% if u in f_manager %}primary{% else %}grey-lighter{% endif %}">
<i class="fas fa-question"></i>
</span>
<span class="panel-icon has-text-{% if u.is_staff %}danger{% else %}grey-lighter{% endif %}">
<i class="fas fa-user-shield"></i>
</span>
</div>
</div>
</a>
{% endfor %}
</div>

View file

@ -0,0 +1,72 @@
{% extends "base.html" %}
{% load i18n %}
{% block content %}
<h1 class="title">{% trans "Liste des comptes spéciaux" %}</h1>
<hr>
<div class="notification">
<h3 class="subtitle has-text-weight-semibold">{% trans "Gestionnaires de Kadenios" %}</h3>
<div class="field is-grouped">
{% for a in admin %}
<div class="control">
<span class="tags has-addons">
<span class="tag is-primary">{{ a.full_name }}</span>
{% comment %}
<a class="tag is-danger has-text-white" href="mailto:{{ a.email }}">
<span class="icon">
<i class="fas fa-at"></i>
</span>
</a>
{% endcomment %}
</span>
</div>
{% endfor %}
</div>
</div>
<div class="notification">
<h3 class="subtitle has-text-weight-semibold">{% trans "Gestionnaires d'élections" %}</h3>
<div class="field is-grouped">
{% for m in e_manager %}
<div class="control">
<span class="tags has-addons">
<span class="tag is-primary">{{ m.full_name }}</span>
{% comment %}
<a class="tag is-danger has-text-white" href="mailto:{{ m.email }}">
<span class="icon">
<i class="fas fa-at"></i>
</span>
</a>
{% endcomment %}
</span>
</div>
{% endfor %}
</div>
</div>
{% comment %}
<div class="notification">
<h3 class="subtitle has-text-weight-semibold">{% trans "Gestionnaires de FAQs" %}</h3>
<div class="field is-grouped">
{% for m in f_manager %}
<div class="control">
<span class="tags has-addons">
<span class="tag is-primary">{{ m.full_name }}</span>
<a class="tag is-danger has-text-white" href="mailto:{{ m.email }}">
<span class="icon">
<i class="fas fa-at"></i>
</span>
</a>
</span>
</div>
{% endfor %}
</div>
</div>
{% endcomment %}
{% endblock %}

View file

@ -2,16 +2,6 @@
{% load i18n %}
{% block extra_head %}
<script>
const cas_users = {{ cas_users|safe }};
const pwd_users = {{ pwd_users|safe }};
</script>
{% endblock %}
{% block content %}
<h1 class="title">{% trans "Gestion des permissions" %}</h1>
@ -41,7 +31,7 @@
</div>
<div class="control">
<a class="button is-primary" href="{% url 'auth.accounts' %}#{{ username }}">
<a class="button is-primary" href="{% url 'auth.accounts' %}">
<span class="icon">
<i class="fas fa-undo-alt"></i>
</span>