Commit db8b7286 authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier
Browse files

Premiere fonctionnelle de la page des privilèges

parent 9d2b544d
Loading
Loading
Loading
Loading
Loading
+1 −1
Changes for module/Application/config/others/droits.config.php: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -90,7 +90,7 @@ return [
                            'privileges' => [
                                'label'      => "Privilèges",
                                'title'      => "Gestion des privilèges",
                                'route'      => 'droits/privileges',
                                'route'      => 'roles',
                                'resource'   => PrivilegeController::getResourceId('UnicaenAuth\Controller\Droits', 'privileges'),
                                'withtarget' => true,
                            ],
+8 −1
Changes for module/Application/src/Application/Controller/RoleController.php: 8 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -4,6 +4,8 @@ namespace Application\Controller;

use Application\Entity\Db\Privilege;
use Application\Entity\Db\Role;
use Application\Service\Etablissement\EtablissementServiceAwareInterface;
use Application\Service\Etablissement\EtablissementServiceAwareTrait;
use Application\Service\Role\RoleServiceAwareInterface;
use Application\Service\Role\RoleServiceAwareTrait;
use Doctrine\ORM\QueryBuilder;
@@ -13,10 +15,11 @@ use UnicaenAuth\Entity\Db\CategoriePrivilege;
use Zend\View\Model\ViewModel;

class RoleController extends AbstractController
        implements EntityManagerAwareInterface, RoleServiceAwareInterface
        implements EntityManagerAwareInterface, RoleServiceAwareInterface, EtablissementServiceAwareInterface
{
    use EntityManagerAwareTrait;
    use RoleServiceAwareTrait;
    use EtablissementServiceAwareTrait;

    public function indexAction()
    {
@@ -30,10 +33,14 @@ class RoleController extends AbstractController
        $qb_categorie = $this->decorateWithCategorie($qb_categorie, $categorie);
        $qb_categorie->orderBy("p.categorie, p.ordre","ASC");
        $privileges = $qb_categorie->getQuery()->execute();

        $etablissements = $this->etablissementService->getEtablissements();

        return new ViewModel([
            'roles' => $roles,
            'privileges' => $privileges,
            'params' => $this->params()->fromQuery(),
            'etablissements' => $etablissements,
        ]);
    }

+26 −13
Changes for module/Application/view/application/role/index.phtml: 26 added lines, 13 removed lines.
Original line number Diff line number Diff line
@@ -26,12 +26,11 @@

<?php

echo "<input type='submit' value='refresh' id='refresh'/>";
echo "<table id='mytable' class='table-bordered'>";
echo "<table id='mytable' class='mytable table-bordered'>";
echo "<tr><th></th>";

foreach($roles as $role) {
    echo generateTableHeaderRole($role);
    echo generateTableHeaderRole($role, $etablissements);
}
echo "</tr>";

@@ -49,16 +48,12 @@ foreach($privileges as $privilege) {
        $id = "{$privilege->getId()}_{$role->getId()}";
        echo "<td class='droit' id='$id' title='{$id}'>";

        echo "<a href='".$this->url("modifier-privilege", ['role' => $role->getId(), 'privilege'=> $privilege->getId()], ["query" => $params], true)."' />";
//        echo "[" . $role->getId() . "|" . $privilege->getId() . "|";
//        echo (array_search($role, $privilege->getRole()->toArray()) === false);
//        echo "]";
        if( array_search($role, $privilege->getRole()->toArray()) !== false) {
            echo "<span class='glyphicon glyphicon-ok text-success'></span>";
        } else {
            echo "<span class='glyphicon glyphicon-remove text-danger'></span>";
        }
        echo "</a>";

        echo "</td>";

    }
@@ -107,18 +102,31 @@ echo "</table>";
        return "KO";
    }


    function getCode(Role $role, $etablissements) {

        /** @var \Application\Entity\Db\Etablissement $etablissement */
        foreach($etablissements as $etablissement) {
            if ($etablissement->getId() == $role->getStructure()->getId()) {
                return $etablissement->getCode();
            }
        }
        return "missing";
    }


    /**
     * @param Role $role
     * @return string
     */
    function generateTableHeaderRole($role) {
    function generateTableHeaderRole($role, $etablissements = null) {

        $premiere = $role->getLibelle();
        $seconde  = "missing";
        $seconde  = "";
        $de = "";
        switch(true) {
            case $role->isTheseDependant() :
                //$seconde = "ETAB";
                $seconde = getCode($role, $etablissements);
                $de = "these";
                break;
            case $role->isEcoleDoctoraleDependant() :
@@ -126,7 +134,7 @@ echo "</table>";
                $de = "ed";
                break;
            case $role->isEtablissementDependant() :
                //$seconde = $role->getStructure()->getCode();
                $seconde = getCode($role, $etablissements);
                $de = "etab";
                break;
            case $role->isUniteRechercheDependant() :
@@ -149,6 +157,11 @@ echo "</table>";


<style>

    table.mytable {
        background-color: white;
    }

    th.categorie {
        font-style: italic;
        font-size: 12pt;
@@ -157,7 +170,7 @@ echo "</table>";
    }

    th.privilege {
        width:50px;
        height:50px;
    }

    th.role {