Commit afa01c81 authored by David Surville's avatar David Surville
Browse files

Déplacement des périmètres dans la librairie unicaen-privilege

parent 9fec706c
Loading
Loading
Loading
Loading
Loading
+86 −0
Original line number Diff line number Diff line
<?php

use UnicaenPrivilege\Guard\PrivilegeController;
use UnicaenPrivilege\Service\Perimetre\PerimetreCategorieService;
use UnicaenPrivilege\Service\Perimetre\PerimetreCategorieServiceFactory;
use UnicaenPrivilege\Service\Perimetre\PerimetreService;
use UnicaenPrivilege\Service\Perimetre\PerimetreServiceFactory;

return [
    'bjyauthorize' => [
        'guards' => [
            PrivilegeController::class => [
            ],
        ],
    ],

//    'router' => [
//        'routes' => [
//            'unicaen-perimetre' => [
//                'type' => Literal::class,
//                'options' => [
//                    'route' => '/perimetre',
//                    'defaults' => [
//                        'controller' => RoleController::class,
//                        'action' => 'index',
//                    ],
//                ],
//                'may_terminate' => true,
//                'child_routes' => [
//                    'ajouter' => [
//                        'type'          => Literal::class,
//                        'options'       => [
//                            'route'       => '/ajouter',
//                            'defaults'    => [
//                                'controller' => RoleController::class,
//                                'action' => 'ajouter',
//                            ],
//                        ],
//                    ],
//                    'modifier' => [
//                        'type'          => Segment::class,
//                        'options'       => [
//                            'route'       => '/modifier/:role',
//                            'defaults'    => [
//                                'controller' => RoleController::class,
//                                'action' => 'modifier',
//                            ],
//                        ],
//                    ],
//                    'supprimer' => [
//                        'type'          => Segment::class,
//                        'options'       => [
//                            'route'       => '/supprimer/:role',
//                            'defaults'    => [
//                                'controller' => RoleController::class,
//                                'action' => 'supprimer',
//                            ],
//                        ],
//                    ],
//                ],
//            ],
//        ],
//    ],

    'service_manager' => [
        'factories' => [
            PerimetreService::class => PerimetreServiceFactory::class,
            PerimetreCategorieService::class => PerimetreCategorieServiceFactory::class,
        ],
    ],

    'controllers' => [
        'factories' => [
        ],
    ],

    'form_elements' => [
        'factories' => [
        ],
    ],

    'hydrators' => [
        'factories' => [
        ],
    ],
];
+10 −3
Original line number Diff line number Diff line
<?php

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


$settings = [
@@ -22,6 +22,13 @@ if ($settings['unicaen-auth']['enable_privileges']) {
             * NB: la classe spécifiée doit hériter de @see \UnicaenPrivilege\Entity\Db\AbstractPrivilege
             */
            'privilege_entity_class' => Privilege::class,

            /**
             * L'entité associée aux périmètres peut être spécifiée via la clef de configuration ['unicaen_auth']['perimetre_entity_class']
             * Si elle est manquante alors la classe @see \UnicaenPrivilege\Entity\Db\Perimetre est utilisée
             * NB: la classe spécifiée doit hériter de @see \UnicaenPrivilege\Entity\Db\AbstractPerimetre
             */
            'perimetre_entity_class' => Perimetre::class
        ],

        'bjyauthorize' => [
@@ -49,7 +56,7 @@ if ($settings['unicaen-auth']['enable_privileges']) {
                                    'label' => "Gérer les privilèges",
                                    'title' => "Gérer les privilèges",
                                    'route' => 'unicaen-privilege',
                                    'resource' => RolePrivileges::getResourceId(PrivilegePrivileges::PRIVILEGE_VOIR),
                                    'resource' => PrivilegePrivileges::getResourceId(PrivilegePrivileges::PRIVILEGE_VOIR),
                                ],
                            ],
                        ],

data/sql/schema_oracle.sql

deleted100644 → 0
+0 −156
Original line number Diff line number Diff line
-- -----------------------------------------------------
-- TABLE UNICAEN_PRIVILEGE_CATEGORIE
-- -----------------------------------------------------
CREATE SEQUENCE UNICAEN_PRIVILEGE_CATEGORIE_ID_SEQ NOCYCLE START WITH 1 INCREMENT BY 1 MINVALUE 0;

CREATE TABLE UNICAEN_PRIVILEGE_CATEGORIE (
  ID        NUMBER(*,0)         NOT NULL,
  CODE      VARCHAR2(150 CHAR)  NOT NULL,
  LIBELLE   VARCHAR2(200 CHAR)  NOT NULL,
  NAMESPACE VARCHAR(255),
  ORDRE     INT                 DEFAULT 0,
  CONSTRAINT PK_UNICAEN_PRIVILEGE_CATEGORIE PRIMARY KEY (ID),
  CONSTRAINT UN_UNICAEN_PRIVILEGE_CATEGORIE_CODE UNIQUE (CODE)
);


-- -----------------------------------------------------
-- TABLE UNICAEN_PRIVILEGE
-- -----------------------------------------------------
CREATE SEQUENCE UNICAEN_PRIVILEGE_ID_SEQ NOCYCLE START WITH 1 INCREMENT BY 1 MINVALUE 0;

CREATE TABLE UNICAEN_PRIVILEGE (
  ID           NUMBER(*, 0)       NOT NULL,
  CATEGORIE_ID NUMBER(*, 0)       NOT NULL,
  CODE         VARCHAR2(150 CHAR) NOT NULL,
  LIBELLE      VARCHAR2(200 CHAR) NOT NULL,
  ORDRE        INT                DEFAULT 0,
  CONSTRAINT PK_UNICAEN_PRIVILEGE PRIMARY KEY (ID),
  CONSTRAINT UN_UNICAEN_PRIVILEGE_CODE UNIQUE (CATEGORIE_ID, CODE),
  CONSTRAINT FK_UNICAEN_PRIVILEGE_CATEGORIE FOREIGN KEY (CATEGORIE_ID) REFERENCES UNICAEN_PRIVILEGE_CATEGORIE (ID) DEFERRABLE INITIALLY IMMEDIATE
);

CREATE INDEX IX_UNICAEN_PRIVILEGE_CATEGORIE ON UNICAEN_PRIVILEGE(CATEGORIE_ID);


-- -----------------------------------------------------
-- TABLE UNICAEN_ROLE_PRIVILEGE_LINKER
-- -----------------------------------------------------
CREATE TABLE UNICAEN_ROLE_PRIVILEGE_LINKER (
  ROLE_ID      NUMBER(*, 0) NOT NULL,
  PRIVILEGE_ID NUMBER(*, 0) NOT NULL,
  CONSTRAINT PK_UNICAEN_ROLE_PRIVILEGE_LINKER PRIMARY KEY (ROLE_ID, PRIVILEGE_ID),
  CONSTRAINT FK_UNICAEN_ROLE_PRIVILEGE_LINKER_ROLE FOREIGN KEY (ROLE_ID) REFERENCES UNICAEN_ROLE (ID) DEFERRABLE INITIALLY IMMEDIATE,
  CONSTRAINT FK_UNICAEN_ROLE_PRIVILEGE_LINKER_PRIVILEGE FOREIGN KEY (PRIVILEGE_ID) REFERENCES UNICAEN_PRIVILEGE (ID) DEFERRABLE INITIALLY IMMEDIATE
);

CREATE INDEX IX_UNICAEN_ROLE_PRIVILEGE_LINKER_ROLE ON UNICAEN_ROLE_PRIVILEGE_LINKER (ROLE_ID);
CREATE INDEX IX_UNICAEN_ROLE_PRIVILEGE_LINKER_PRIVILEGE ON UNICAEN_ROLE_PRIVILEGE_LINKER (PRIVILEGE_ID);


-- DATA

INSERT INTO UNICAEN_PRIVILEGE_CATEGORIE (
  ID,
  CODE,
  LIBELLE,
  ORDRE)
WITH tmp AS (
  SELECT  1, 'utilisateur'  c, 'Gestion des utilisateurs' l, 1  o FROM dual
)
SELECT
  UNICAEN_PRIVILEGE_CATEGORIE_ID_SEQ.nextval,
  tmp.c,
  tmp.l,
  tmp.o
FROM tmp;

INSERT INTO UNICAEN_PRIVILEGE (
  ID,
  CATEGORIE_ID,
  CODE,
  LIBELLE,
  ORDRE)
WITH tmp AS (
  SELECT 1, 1 ca, 'utilisateur_afficher'      c, 'Consulter un utilisateur'                       l, 1  o FROM dual UNION
  SELECT 2, 1 ca, 'utilisateur_ajouter'       c, 'Ajouter un utilisateur'                         l, 2  o FROM dual UNION
  SELECT 3, 1 ca, 'utilisateur_changerstatus' c, 'Changer le statut d''un utilisateur'            l, 3  o FROM dual UNION
  SELECT 4, 1 ca, 'utilisateur_modifierrole'  c, 'Modifier les rôles attribués à un utilisateur'  l, 4  o FROM dual
)
SELECT
  UNICAEN_PRIVILEGE_ID_SEQ.nextval,
  tmp.ca,
  UNICAEN_PRIVILEGE_CATEGORIE_ID_SEQ.currval,
  tmp.l,
  tmp.o
FROM tmp;

INSERT INTO UNICAEN_PRIVILEGE_CATEGORIE (
  ID,
  CODE,
  LIBELLE,
  ORDRE)
WITH tmp AS (
  SELECT  1, 'role'  c, 'Gestion des rôles' l, 1  o FROM dual
)
SELECT
  UNICAEN_PRIVILEGE_CATEGORIE_ID_SEQ.nextval,
  tmp.c,
  tmp.l,
  tmp.o
FROM tmp;

INSERT INTO UNICAEN_PRIVILEGE (
  ID,
  CATEGORIE_ID,
  CODE,
  LIBELLE,
  ORDRE)
WITH tmp AS (
  SELECT 1, 1 ca, 'role_afficher' c, 'Consulter les rôles'  l, 1  o FROM dual UNION
  SELECT 2, 1 ca, 'role_modifier' c, 'Modifier un rôle'     l, 2  o FROM dual UNION
  SELECT 3, 1 ca, 'role_effacer'  c, 'Supprimer un rôle'    l, 3  o FROM dual
)
SELECT
  UNICAEN_PRIVILEGE_ID_SEQ.nextval,
  tmp.ca,
  UNICAEN_PRIVILEGE_CATEGORIE_ID_SEQ.currval,
  tmp.l,
  tmp.o
FROM tmp;

INSERT INTO UNICAEN_PRIVILEGE_CATEGORIE (
  ID,
  CODE,
  LIBELLE,
  ORDRE)
WITH tmp AS (
  SELECT  1, 'privilege'  c, 'Gestion des privilèges' l, 1  o FROM dual
)
SELECT
  UNICAEN_PRIVILEGE_CATEGORIE_ID_SEQ.nextval,
  tmp.c,
  tmp.l,
  tmp.o
FROM tmp;

INSERT INTO UNICAEN_PRIVILEGE (
  ID,
  CATEGORIE_ID,
  CODE,
  LIBELLE,
  ORDRE)
WITH tmp AS (
  SELECT 1, 1 ca, 'privilege_voir'      c, 'Afficher les privilèges'  l, 1  o FROM dual UNION
  SELECT 2, 1 ca, 'privilege_ajouter'   c, 'Ajouter un privilège'     l, 2  o FROM dual UNION
  SELECT 3, 1 ca, 'privilege_modifier'  c, 'Modifier un privilège'    l, 3  o FROM dual UNION
  SELECT 4, 1 ca, 'privilege_supprimer' c, 'Supprimer un privilège'   l, 4  o FROM dual UNION
  SELECT 5, 1 ca, 'privilege_affecter'  c, 'Attribuer un privilège'   l, 5  o FROM dual
)
SELECT
  UNICAEN_PRIVILEGE_ID_SEQ.nextval,
  tmp.ca,
  UNICAEN_PRIVILEGE_CATEGORIE_ID_SEQ.currval,
  tmp.l,
  tmp.o
FROM tmp;
 No newline at end of file

data/sql/schema_postgresql.sql

deleted100644 → 0
+0 −150
Original line number Diff line number Diff line
-- -----------------------------------------------------
-- TABLE UNICAEN_PRIVILEGE_CATEGORIE
-- -----------------------------------------------------
CREATE TABLE UNICAEN_PRIVILEGE_CATEGORIE (
  ID        SERIAL        PRIMARY KEY,
  CODE      VARCHAR(150)  NOT NULL,
  LIBELLE   VARCHAR(200)  NOT NULL,
  NAMESPACE VARCHAR(255),
  ORDRE     INTEGER       DEFAULT 0
);

CREATE UNIQUE INDEX UN_UNICAEN_PRIVILEGE_CATEGORIE_CODE ON UNICAEN_PRIVILEGE_CATEGORIE (CODE);

-- -----------------------------------------------------
-- TABLE UNICAEN_PRIVILEGE
-- -----------------------------------------------------
CREATE TABLE UNICAEN_PRIVILEGE (
  ID           SERIAL       PRIMARY KEY,
  CATEGORIE_ID INTEGER      NOT NULL,
  CODE         VARCHAR(150) NOT NULL,
  LIBELLE      VARCHAR(200) NOT NULL,
  ORDRE        INTEGER      DEFAULT 0,
  CONSTRAINT FK_UNICAEN_PRIVILEGE_CATEGORIE FOREIGN KEY (CATEGORIE_ID) REFERENCES UNICAEN_PRIVILEGE_CATEGORIE (ID) DEFERRABLE INITIALLY IMMEDIATE
);

CREATE UNIQUE INDEX UN_UNICAEN_PRIVILEGE_CODE ON UNICAEN_PRIVILEGE(CATEGORIE_ID, CODE);
CREATE INDEX IX_UNICAEN_PRIVILEGE_CATEGORIE ON UNICAEN_PRIVILEGE(CATEGORIE_ID);


-- -----------------------------------------------------
-- TABLE UNICAEN_ROLE_PRIVILEGE_LINKER
-- -----------------------------------------------------
CREATE TABLE UNICAEN_ROLE_PRIVILEGE_LINKER (
  ROLE_ID      INTEGER  NOT NULL,
  PRIVILEGE_ID INTEGER  NOT NULL,
  CONSTRAINT PK_UNICAEN_ROLE_PRIVILEGE_LINKER PRIMARY KEY (ROLE_ID, PRIVILEGE_ID),
  CONSTRAINT FK_UNICAEN_ROLE_PRIVILEGE_LINKER_ROLE FOREIGN KEY (ROLE_ID) REFERENCES UNICAEN_ROLE (ID) DEFERRABLE INITIALLY IMMEDIATE,
  CONSTRAINT FK_UNICAEN_ROLE_PRIVILEGE_LINKER_PRIVILEGE FOREIGN KEY (PRIVILEGE_ID) REFERENCES UNICAEN_PRIVILEGE (ID) DEFERRABLE INITIALLY IMMEDIATE
);

CREATE INDEX IX_UNICAEN_ROLE_PRIVILEGE_LINKER_ROLE ON UNICAEN_ROLE_PRIVILEGE_LINKER (ROLE_ID);
CREATE INDEX IX_UNICAEN_ROLE_PRIVILEGE_LINKER_PRIVILEGE ON UNICAEN_ROLE_PRIVILEGE_LINKER (PRIVILEGE_ID);


-- DATA

INSERT INTO UNICAEN_PRIVILEGE_CATEGORIE (
  ID,
  CODE,
  LIBELLE,
  ORDRE)
WITH tmp AS (
  SELECT  1, 'utilisateur'  c, 'Gestion des utilisateurs' l, 1  o FROM dual
)
SELECT
  UNICAEN_PRIVILEGE_CATEGORIE_ID_SEQ.nextval,
  tmp.c,
  tmp.l,
  tmp.o
FROM tmp;

INSERT INTO UNICAEN_PRIVILEGE (
  ID,
  CATEGORIE_ID,
  CODE,
  LIBELLE,
  ORDRE)
WITH tmp AS (
  SELECT 1, 1 ca, 'utilisateur_afficher'      c, 'Consulter un utilisateur'                       l, 1  o FROM dual UNION
  SELECT 2, 1 ca, 'utilisateur_ajouter'       c, 'Ajouter un utilisateur'                         l, 2  o FROM dual UNION
  SELECT 3, 1 ca, 'utilisateur_changerstatus' c, 'Changer le statut d''un utilisateur'            l, 3  o FROM dual UNION
  SELECT 4, 1 ca, 'utilisateur_modifierrole'  c, 'Modifier les rôles attribués à un utilisateur'  l, 4  o FROM dual
)
SELECT
  UNICAEN_PRIVILEGE_ID_SEQ.nextval,
  tmp.ca,
  UNICAEN_PRIVILEGE_CATEGORIE_ID_SEQ.currval,
  tmp.l,
  tmp.o
FROM tmp;

INSERT INTO UNICAEN_PRIVILEGE_CATEGORIE (
  ID,
  CODE,
  LIBELLE,
  ORDRE)
WITH tmp AS (
  SELECT  1, 'role'  c, 'Gestion des rôles' l, 1  o FROM dual
)
SELECT
  UNICAEN_PRIVILEGE_CATEGORIE_ID_SEQ.nextval,
  tmp.c,
  tmp.l,
  tmp.o
FROM tmp;

INSERT INTO UNICAEN_PRIVILEGE (
  ID,
  CATEGORIE_ID,
  CODE,
  LIBELLE,
  ORDRE)
WITH tmp AS (
  SELECT 1, 1 ca, 'role_afficher' c, 'Consulter les rôles'  l, 1  o FROM dual UNION
  SELECT 2, 1 ca, 'role_modifier' c, 'Modifier un rôle'     l, 2  o FROM dual UNION
  SELECT 3, 1 ca, 'role_effacer'  c, 'Supprimer un rôle'    l, 3  o FROM dual
)
SELECT
  UNICAEN_PRIVILEGE_ID_SEQ.nextval,
  tmp.ca,
  UNICAEN_PRIVILEGE_CATEGORIE_ID_SEQ.currval,
  tmp.l,
  tmp.o
FROM tmp;

INSERT INTO UNICAEN_PRIVILEGE_CATEGORIE (
  ID,
  CODE,
  LIBELLE,
  ORDRE)
WITH tmp AS (
  SELECT  1, 'privilege'  c, 'Gestion des privilèges' l, 1  o FROM dual
)
SELECT
  UNICAEN_PRIVILEGE_CATEGORIE_ID_SEQ.nextval,
  tmp.c,
  tmp.l,
  tmp.o
FROM tmp;

INSERT INTO UNICAEN_PRIVILEGE (
  ID,
  CATEGORIE_ID,
  CODE,
  LIBELLE,
  ORDRE)
WITH tmp AS (
  SELECT 1, 1 ca, 'privilege_voir'      c, 'Afficher les privilèges'  l, 1  o FROM dual UNION
  SELECT 2, 1 ca, 'privilege_ajouter'   c, 'Ajouter un privilège'     l, 2  o FROM dual UNION
  SELECT 3, 1 ca, 'privilege_modifier'  c, 'Modifier un privilège'    l, 3  o FROM dual UNION
  SELECT 4, 1 ca, 'privilege_supprimer' c, 'Supprimer un privilège'   l, 4  o FROM dual UNION
  SELECT 5, 1 ca, 'privilege_affecter'  c, 'Attribuer un privilège'   l, 5  o FROM dual
)
SELECT
  UNICAEN_PRIVILEGE_ID_SEQ.nextval,
  tmp.ca,
  UNICAEN_PRIVILEGE_CATEGORIE_ID_SEQ.currval,
  tmp.l,
  tmp.o
FROM tmp;
 No newline at end of file
+156 −0
Original line number Diff line number Diff line
<?php

namespace UnicaenPrivilege\Entity\Db;

abstract class AbstractPerimetre implements PerimetreInterface
{
    /**
     * @var int
     */
    protected $id;

    /**
     * @var string
     */
    protected $code;

    /**
     * @var string
     */
    protected $libelle;

    /**
     * @var int
     */
    protected $ordre;

    /**
     * @var PerimetreCategorieInterface
     */
    protected $categorie;


    /**
     * @return string
     */
    public function __toString()
    {
        return $this->getLibelle();
    }

    /**
     * Get id.
     *
     * @return int
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set id.
     *
     * @param int $id
     * @return PerimetreInterface
     */
    public function setId($id)
    {
        $this->id = (int)$id;

        return $this;
    }

    /**
     * Get code.
     *
     * @return string
     */
    public function getCode()
    {
        return $this->code;
    }

    /**
     * Set code.
     *
     * @param string $code
     * @return PerimetreInterface
     */
    public function setCode($code)
    {
        $this->code = $code;

        return $this;
    }

    /**
     * Get libelle.
     *
     * @return string
     */
    public function getLibelle()
    {
        return $this->libelle;
    }

    /**
     * Set libelle.
     *
     * @param string $libelle
     * @return PerimetreInterface
     */
    public function setLibelle($libelle)
    {
        $this->libelle = $libelle;

        return $this;
    }

    /**
     * Get ordre.
     *
     * @return integer
     */
    function getOrdre()
    {
        return $this->ordre;
    }

    /**
     * Set ordre.
     *
     * @param integer $ordre
     * @return PerimetreInterface
     */
    function setOrdre($ordre)
    {
        $this->ordre = (int)$ordre;

        return $this;
    }


    /**
     * Get categorie.
     *
     * @return PerimetreCategorieInterface
     */
    public function getCategorie()
    {
        return $this->categorie;
    }

    /**
     * Set categorie.
     *
     * @param PerimetreCategorieInterface $categorie
     * @return PerimetreInterface
     */
    public function setCategorie(PerimetreCategorieInterface $categorie)
    {
        $this->categorie = $categorie;

        return $this;
    }
}
 No newline at end of file
Loading