Commit 8077b649 authored by David Surville's avatar David Surville
Browse files

Affichage des utilisateurs et des rôles associés aux périmètres

parent bc93c48c
Loading
Loading
Loading
Loading
Loading
+26 −0
Original line number Diff line number Diff line
@@ -2,6 +2,9 @@

namespace UnicaenPrivilege\Entity\Db;

use Doctrine\Common\Collections\Collection;
use UnicaenUtilisateur\Entity\Db\UserRolePerimetreInterface;

interface PerimetreInterface
{
    /**
@@ -84,4 +87,27 @@ interface PerimetreInterface
     * @return PerimetreInterface
     */
    public function setCategorie(PerimetreCategorieInterface $categorie);

    /**
     * Add roleUser.
     *
     * @param UserRolePerimetreInterface $roleUser
     * @return PerimetreInterface
     */
    public function addRoleUser(UserRolePerimetreInterface $roleUser);

    /**
     * Remove roleUser.
     *
     * @param UserRolePerimetreInterface $roleUser
     * @return PerimetreInterface
     */
    public function removeRoleUser(UserRolePerimetreInterface $roleUser);

    /**
     * Get perimetres.
     *
     * @return Collection
     */
    public function getRoleUders();
}
 No newline at end of file
+18 −0
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@
use UnicaenPrivilege\Entity\Db\PerimetreCategorieInterface;
use UnicaenPrivilege\Entity\Db\PerimetreInterface;
use UnicaenPrivilege\Provider\Privilege\PerimetrePrivileges;
use UnicaenUtilisateur\Entity\Db\UserRolePerimetreInterface;

/**
 * @var PerimetreCategorieInterface $categorie
@@ -101,15 +102,30 @@ $canSupprimer = $this->isAllowed(PerimetrePrivileges::getResourceId(PerimetreP
            <tr>
                <th>Libellé</th>
                <th>Code</th>
                <th>Utilisateurs associés</th>
                <th class="col-md-1">Ordre</th>
                <th class="col-md-1">Action</th>
            </tr>
        </thead>
        <tbody>
            <?php foreach ($perimetres as $perimetre) : ?>
                <?php
                $roleUsers = $perimetre->getRoleUders()->toArray();
                $users = array_map(function ($ru) {
                    /** @var UserRolePerimetreInterface $ru */
                    $u = $ru->getUserRole()->getUser();
                    return sprintf('%s ~ %s', $u->getDisplayName(), $u->getUsername());
                }, $roleUsers);
                sort($users);
                ?>
                <tr>
                    <td><?php echo $perimetre->getLibelle(); ?></td>
                    <td><?php echo $perimetre->getCode(); ?></td>
                    <td>
                        <a href="#" data-toggle="popover" data-placement="left" data-html="true" data-content="<?php echo implode("<br />", $users); ?>">
                            <i class="fas fa-user"></i> <?php echo $perimetre->getRoleUders()->count(); ?>
                        </a>
                    </td>
                    <td><?php echo $perimetre->getOrdre(); ?></td>
                    <td>
                        <?php if($canEditer) : ?>
@@ -159,6 +175,8 @@ $canSupprimer = $this->isAllowed(PerimetrePrivileges::getResourceId(PerimetreP

<script>
    $(function() {
        $('[data-toggle="popover"]').popover();

        if(jQuery().dataTable) {
            $('#perimetre-liste').DataTable({
                "order": [[2, 'asc']],
+19 −5
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@
use UnicaenPrivilege\Entity\Db\PerimetreCategorieInterface;
use UnicaenPrivilege\Entity\Db\PerimetreInterface;
use UnicaenPrivilege\Provider\Privilege\PerimetrePrivileges;
use UnicaenUtilisateur\Entity\Db\RoleInterface;

/**
 * @var string $title
@@ -53,6 +54,7 @@ $canSupprimer = $this->isAllowed(PerimetrePrivileges::getResourceId(PerimetreP
                <th>Libellé</th>
                <th>Code</th>
                <th>Périmètres</th>
                <th>Rôles associés</th>
                <th class="col-md-1">Ordre</th>
                <th class="col-md-1">Action</th>
            </tr>
@@ -60,12 +62,19 @@ $canSupprimer = $this->isAllowed(PerimetrePrivileges::getResourceId(PerimetreP
        <tbody>
        <?php foreach ($categories as $categorie) : ?>
            <?php
            $listing = [];
            $perimetres = [];
            /** @var PerimetreInterface $perimetre */
            foreach ($categorie->getPerimetres() as $perimetre) {
                $listing[] = $perimetre->getLibelle();
                $perimetres[] = $perimetre->getLibelle();
            }
            sort($listing);
            sort($perimetres);

            $roles = $categorie->getRoles()->toArray();
            $roles = array_map(function ($r) {
                /** @var $r RoleInterface */
                return $r->getLibelle();
            }, $roles);
            sort($roles);
            ?>

            <tr>
@@ -81,10 +90,15 @@ $canSupprimer = $this->isAllowed(PerimetrePrivileges::getResourceId(PerimetreP
                </td>
                <td><?php echo $categorie->getCode(); ?></td>
                <td>
                    <a href="#" data-toggle="popover" data-placement="left" data-html="true" data-content="<?php echo implode("<br />", $listing); ?>">
                    <a href="#" data-toggle="popover" data-placement="left" data-html="true" data-content="<?php echo implode("<br />", $perimetres); ?>">
                        <i class="far fa-dot-circle"></i> <?php echo $categorie->getPerimetres()->count(); ?>
                    </a>
                </td>
                <td>
                    <a href="#" data-toggle="popover" data-placement="left" data-html="true" data-content="<?php echo implode("<br />", $roles); ?>">
                        <i class="fas fa-user-tag"></i> <?php echo $categorie->getRoles()->count() ?>
                    </a>
                </td>
                <td><?php echo $categorie->getOrdre(); ?></td>
                <td>
                    <?php if ($canEditer) : ?>
@@ -123,7 +137,7 @@ $canSupprimer = $this->isAllowed(PerimetrePrivileges::getResourceId(PerimetreP

</div>

<script>
<script type="text/javascript">
    $(function() {
        $('[data-toggle="popover"]').popover();