Commit bc977433 authored by Florian Joriot's avatar Florian Joriot
Browse files

modification fichier sql pour initialisation

parent b420d4b2
Loading
Loading
Loading
Loading
Loading
+47 −35
Original line number Diff line number Diff line
-- -----------------------------------------------------
-- TABLE UNICAEN_PRIVILEGE_CATEGORIE
-- -----------------------------------------------------
CREATE TABLE UNICAEN_PRIVILEGE_CATEGORIE (
CREATE TABLE IF NOT EXISTS UNICAEN_PRIVILEGE_CATEGORIE (
                                             ID        SERIAL        PRIMARY KEY,
                                             CODE      VARCHAR(150)  NOT NULL,
                                             LIBELLE   VARCHAR(200)  NOT NULL,
@@ -9,12 +9,12 @@ CREATE TABLE UNICAEN_PRIVILEGE_CATEGORIE (
                                             ORDRE     INTEGER       DEFAULT 0
);

CREATE UNIQUE INDEX UN_UNICAEN_PRIVILEGE_CATEGORIE_CODE ON UNICAEN_PRIVILEGE_CATEGORIE (CODE);
CREATE UNIQUE INDEX IF NOT EXISTS UN_UNICAEN_PRIVILEGE_CATEGORIE_CODE ON UNICAEN_PRIVILEGE_CATEGORIE (CODE);

-- -----------------------------------------------------
-- TABLE UNICAEN_PRIVILEGE
-- -----------------------------------------------------
CREATE TABLE UNICAEN_PRIVILEGE_PRIVILEGE (
CREATE TABLE IF NOT EXISTS UNICAEN_PRIVILEGE_PRIVILEGE (
                                   ID           SERIAL       PRIMARY KEY,
                                   CATEGORIE_ID INTEGER      NOT NULL,
                                   CODE         VARCHAR(150) NOT NULL,
@@ -23,14 +23,14 @@ CREATE TABLE UNICAEN_PRIVILEGE_PRIVILEGE (
                                   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_PRIVILEGE (CATEGORIE_ID, CODE);
CREATE INDEX IX_UNICAEN_PRIVILEGE_CATEGORIE ON UNICAEN_PRIVILEGE_PRIVILEGE(CATEGORIE_ID);
CREATE UNIQUE INDEX IF NOT EXISTS UN_UNICAEN_PRIVILEGE_CODE ON UNICAEN_PRIVILEGE_PRIVILEGE (CATEGORIE_ID, CODE);
CREATE INDEX IF NOT EXISTS IX_UNICAEN_PRIVILEGE_CATEGORIE ON UNICAEN_PRIVILEGE_PRIVILEGE(CATEGORIE_ID);


-- -----------------------------------------------------
-- TABLE UNICAEN_ROLE_PRIVILEGE_LINKER
-- -----------------------------------------------------
CREATE TABLE UNICAEN_PRIVILEGE_PRIVILEGE_ROLE_LINKER (
CREATE TABLE IF NOT EXISTS UNICAEN_PRIVILEGE_PRIVILEGE_ROLE_LINKER (
                                                         ROLE_ID      INTEGER  NOT NULL,
                                                         PRIVILEGE_ID INTEGER  NOT NULL,
                                                         CONSTRAINT PK_UNICAEN_PRIVILEGE_PRIVILEGE_ROLE_LINKER PRIMARY KEY (ROLE_ID, PRIVILEGE_ID),
@@ -38,27 +38,28 @@ CREATE TABLE UNICAEN_PRIVILEGE_PRIVILEGE_ROLE_LINKER (
                                                         CONSTRAINT FK_UNICAEN_PRIVILEGE_PRIVILEGE_ROLE_LINKER_PRIVILEGE FOREIGN KEY (PRIVILEGE_ID) REFERENCES UNICAEN_PRIVILEGE_PRIVILEGE (ID) DEFERRABLE INITIALLY IMMEDIATE
);

CREATE INDEX IX_UNICAEN_PRIVILEGE_PRIVILEGE_ROLE_LINKER_ROLE ON UNICAEN_PRIVILEGE_PRIVILEGE_ROLE_LINKER (ROLE_ID);
CREATE INDEX IX_UNICAEN_PRIVILEGE_PRIVILEGE_ROLE_LINKER_PRIVILEGE ON UNICAEN_PRIVILEGE_PRIVILEGE_ROLE_LINKER (PRIVILEGE_ID);
CREATE INDEX IF NOT EXISTS IX_UNICAEN_PRIVILEGE_PRIVILEGE_ROLE_LINKER_ROLE ON UNICAEN_PRIVILEGE_PRIVILEGE_ROLE_LINKER (ROLE_ID);
CREATE INDEX IF NOT EXISTS IX_UNICAEN_PRIVILEGE_PRIVILEGE_ROLE_LINKER_PRIVILEGE ON UNICAEN_PRIVILEGE_PRIVILEGE_ROLE_LINKER (PRIVILEGE_ID);


-- DATA

INSERT INTO UNICAEN_PRIVILEGE_CATEGORIE (
    CODE,
    LIBELLE,
    NAMESPACE,
    ORDRE)
    values
    ('utilisateur', 'Gestion des utilisateurs', 'UnicaenUtilisateur\Provider\Privilege' 1),
    ('role', 'Gestion des rôles', 'UnicaenUtilisateur\Provider\Privilege', 1),
    ('privilege', 'Gestion des privilèges', 'UnicaenPrivilege\Provider\Privilege', 1)
        ('utilisateur', 'Gestion des utilisateurs', 'UnicaenUtilisateur\Provider\Privilege', 1),
        ('role', 'Gestion des rôles', 'UnicaenUtilisateur\Provider\Privilege', 2),
        ('privilege', 'Gestion des privilèges', 'UnicaenPrivilege\Provider\Privilege', 3)
    ON CONFLICT (CODE) DO
        UPDATE SET
        LIBELLE=excluded.LIBELLE,
        NAMESPACE=excluded.NAMESPACE,
        ORDRE=excluded.ORDRE;



WITH d(code, lib, ordre) AS (
    SELECT 'utilisateur_afficher', 'Consulter un utilisateur', 1 UNION
    SELECT 'utilisateur_ajouter', 'Ajouter un utilisateur', 2 UNION
@@ -104,3 +105,14 @@ FROM d
    UPDATE SET
        LIBELLE=excluded.LIBELLE,
        ORDRE=excluded.ORDRE;

INSERT INTO unicaen_privilege_privilege_role_linker
    (role_id, privilege_id)
    SELECT role.id, privilege.id
    FROM
        unicaen_utilisateur_role role,
        unicaen_privilege_privilege privilege
    JOIN unicaen_privilege_categorie cp ON privilege.categorie_id = cp.id
    WHERE role.role_id = 'Admin_tech'
    AND cp.code IN('utilisateur', 'role', 'privilege')
    ON conflict do nothing;
 No newline at end of file