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

UP

parent 1ace1c64
Loading
Loading
Loading
Loading
Loading
+83 −0
Changes for config/autoload/unicaen-privilege.global.php: 83 added lines, 0 removed lines.
Original line number Diff line number Diff line
<?php

use UnicaenPrivilege\Entity\Db\Privilege;
use UnicaenPrivilege\Provider\Privilege\PrivilegePrivileges;
use UnicaenPrivilege\Provider\Rule\PrivilegeRuleProvider;
use UnicaenPrivilege\Service\Privilege\PrivilegeService;
use UnicaenUtilisateur\Entity\Db\Role;
use UnicaenUtilisateur\Provider\Privilege\RolePrivileges;

$settings = [
    /**
     * L'entité associée aux roles peut être spécifiée via la clef de configuration ['unicaen_auth']['role_entity_class']
     * si elle est manquante alors la classe \UnicaenUtiliseur\Entity\Db\Role est utilisée
     * NB: la classe spécifiée doit hériter de \UnicaenUtiliseur\Entity\Db\AbstractRole.
     */
    'unicaen-auth' => [
        'enable_privileges' => true,
        'identity_providers' => [
            300 => 'UnicaenAuthentification\Provider\Identity\Basic',   // en 1er
            200 => 'UnicaenAuthentification\Provider\Identity\Db',      // en 2e
            100 => 'UnicaenAuthentification\Provider\Identity\Ldap',    // en 3e @deprecated
//            020 => 'Application\Provider\IdentityProvider',             // en 3e
        ],
    ],
    'navigation' => [
        'default' => [
            'home' => [
                'pages' => [
                    'administration' => [
                        'pages' => [
                            [
                                'label' => "Privilèges",
                                'title' => "Gérer les privilèges",
                                'route' => 'unicaen-privilege',
                                'resource' => RolePrivileges::getResourceId(PrivilegePrivileges::PRIVILEGE_VOIR),
                                'order'    => 20050,
                                'icon' => 'fas fa-angle-right',
                            ],
                        ],
                    ],
                ],
            ],
        ],
    ],
];

if ($settings['unicaen-auth']['enable_privileges']) {
    $privileges = [
        'unicaen-auth' => [
            /**
             * Classes représentant les entités rôle et privilège.
             * - Entité rôle      : héritant de \UnicaenAuth\Entity\Db\AbstractRole      ou implémentant \UnicaenAuth\Entity\Db\RoleInterface.
             * - Entité privilège : héritant de \UnicaenAuth\Entity\Db\AbstractPrivilege ou implémentant \UnicaenAuth\Entity\Db\PrivilegeInterface.
             *
             * Valeurs par défaut :
             * - 'role_entity_class'      : 'UnicaenAuth\Entity\Db\Role'
             * - 'privilege_entity_class' : 'UnicaenAuth\Entity\Db\Privilege'
             */
            'role_entity_class'      => Role::class,
            'privilege_entity_class' => Privilege::class,
        ],

        'bjyauthorize' => [

            'resource_providers' => [
                /**
                 * Le service Privilèges peut aussi être une source de ressources,
                 * si on souhaite tester directement l'accès à un privilège
                 */
                PrivilegeService::class => [],
            ],

            'rule_providers'     => [
                PrivilegeRuleProvider::class => [],
            ],
        ],

    ];
} else {
    $privileges = [];
}

return array_merge_recursive($settings, $privileges);
 No newline at end of file
+73 −3
Changes for module/Application/view/application/application/index.phtml: 73 added lines, 3 removed lines.
Original line number Diff line number Diff line
@@ -18,15 +18,29 @@ $canApplicationModifier = $this->isAllowed(ApplicationPrivileges::getResourceId(
$canApplicationHistoriser = $this->isAllowed(ApplicationPrivileges::getResourceId(ApplicationPrivileges::APPLICATION_HISTORISER));
$canApplicationSupprimer = $this->isAllowed(ApplicationPrivileges::getResourceId(ApplicationPrivileges::APPLICATION_SUPPRIMER));

var_dump(new DateTime());
var_dump($canApplicationAfficher);

$this->headTitle('Application');
?>

<br>
<div class="row">
    <div class="col-md-8">
        <h1 class="page-header">
            Application
        </h1>
    </div>
    <?php if ($canApplicationAjouter) : ?>
    <div class="col-md-4">
        <div class="float-end">
            <?php /** @see \Application\Controller\ApplicationController::ajouterAction() */ ?>
            <a href="<?php echo $this->url('application/ajouter', [], [], true); ?>"
               class="btn btn-primary ajax-modal" data-event="modification">
                <span class="icon icon-ajouter"></span>
                Ajouter une application
            </a>
        </div>
    </div>
    <?php endif; ?>
</div>

<table class="table table-condensed datatable">
    <thead>
@@ -76,14 +90,70 @@ $this->headTitle('Application');
            </td>
            <td class="action">
                <?php if ($canApplicationAfficher) : ?>
                    <?php /** @see \Application\Controller\ApplicationController::afficherAction() */ ?>
                    <a href="<?php echo $this->url('application/afficher', ['application' => $application->getId()], [], true); ?>"
                       class="ajax-modal"
                    >
                        <span class="icon icon-voir"></span> Afficher
                    </a>
                <?php endif; ?>
                <?php if ($canApplicationModifier) : ?>
                    <br>
                    <?php /** @see \Application\Controller\ApplicationController::modifierAction() */ ?>
                    <a href="<?php echo $this->url('application/modifier', ['application' => $application->getId()], [], true); ?>"
                       class="ajax-modal" data-event="modification"
                    >
                        <span class="icon icon-editer"></span> Modifier
                    </a>
                <?php endif; ?>
                <br>
                <span class="icon icon-lier"></span> Associer catégories
                <?php if ($canApplicationHistoriser) : ?>
                    <br>
                    <?php if ($application->estNonHistorise()) : ?>
                        <?php /** @see \Application\Controller\ApplicationController::historiserAction() */ ?>
                        <a href="<?php echo $this->url('application/historiser', ['application' => $application->getId()], [], true); ?>"
                        >
                            <span class="icon icon-historiser"></span> Historiser
                        </a>
                    <?php else: ?>
                        <?php /** @see \Application\Controller\ApplicationController::restaurerAction() */ ?>
                        <a href="<?php echo $this->url('application/restaurer', ['application' => $application->getId()], [], true); ?>"
                        >
                            <span class="icon icon-restaurer"></span> Restaurer
                        </a>
                    <?php endif; ?>
                <?php endif; ?>
                <?php if ($canApplicationSupprimer) : ?>
                    <br>
                    <?php /** @see \Application\Controller\ApplicationController::supprimerAction() */ ?>
                    <a href="<?php echo $this->url('application/supprimer', ['application' => $application->getId()], [], true); ?>"
                       class="ajax-modal" data-event="modification"
                    >
                        <span class="text-danger">
                            <span class="icon icon-unchecked"></span> Supprimer
                        </span>
                    </a>
                <?php endif; ?>
            </td>
        </tr>
    <?php endforeach; ?>
    </tbody>
</table>


<script>
    $(function() {
        $("body").on("modification", function (event) {
            event.div.modal('hide');
            window.location.reload();
        });
    });

    $(function() {
        $("table").DataTable( {
            'paging' : false,
            'info' : false,
        });
    });
</script>
 No newline at end of file