Skip to content
Snippets Groups Projects
Select Git revision
  • 4183602a67a8ed3b99d15a843b25f34b05bc3721
  • master default protected
  • 5.x
  • ll-php8-bs5
  • release_5_bs5
  • ll-php8
  • 4.x
  • laminas_migration
  • release_1.0.0.2
  • release_4.0.0
  • release_3.2.8
  • bootstrap4_migration
  • 1.0.0.3
  • 6.0.7
  • 6.0.6
  • 6.0.5
  • 6.0.4
  • 6.0.3
  • 6.0.2
  • 6.0.1
  • 5.1.1
  • 6.0.0
  • 5.1.0
  • 5.0.0
  • 4.0.2
  • 3.2.11
  • 4.0.1
  • 3.2.10
  • 4.0.0
  • 1.0.0.2
  • 3.2.9
  • 3.2.8
32 results

Module.php

  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    schema_postgresql.sql 3.10 KiB
    CREATE TABLE "user" (
      id BIGSERIAL PRIMARY KEY,
      username VARCHAR(255) DEFAULT NULL,
      email VARCHAR(255) DEFAULT NULL,
      display_name VARCHAR(64) DEFAULT NULL,
      password VARCHAR(128) NOT NULL,
      state SMALLINT default 1
    ) ;
    CREATE UNIQUE INDEX user_username_unique ON "user" (username);
    
    alter table "user" add PASSWORD_RESET_TOKEN varchar(256) default null;
    
    create unique index USER_PASSWORD_RESET_TOKEN_UN on "user" (PASSWORD_RESET_TOKEN);
    
    CREATE TABLE user_role (
      id BIGSERIAL PRIMARY KEY,
      role_id VARCHAR(64) NOT NULL,
      is_default SMALLINT NOT NULL DEFAULT 0,
      parent_id BIGINT DEFAULT NULL,
      ldap_filter varchar(255) DEFAULT NULL,
      FOREIGN KEY (parent_id) REFERENCES user_role (id) ON DELETE SET NULL
    );
    CREATE UNIQUE INDEX user_role_roleid_unique ON user_role (role_id);
    
    
    CREATE TABLE user_role_linker (
      user_id BIGINT NOT NULL,
      role_id BIGINT NOT NULL,
      PRIMARY KEY (user_id, role_id),
      FOREIGN KEY (user_id) REFERENCES "user" (id) ON DELETE CASCADE,
      FOREIGN KEY (role_id) REFERENCES user_role (id) ON DELETE CASCADE
    );
    CREATE UNIQUE INDEX user_role_linker_unique ON user_role_linker (user_id, role_id);
    
    
    
    
    CREATE TABLE  IF NOT EXISTS categorie_privilege (
      id      BIGSERIAL PRIMARY KEY,
      code    VARCHAR(150) NOT NULL,
      libelle VARCHAR(200) NOT NULL,
      ordre   INT
    );
    CREATE UNIQUE INDEX categorie_privilege_unique ON categorie_privilege (code);
    
    
    CREATE TABLE IF NOT EXISTS privilege (
      id            BIGSERIAL PRIMARY KEY,
      categorie_id  BIGINT NOT NULL,
      code          VARCHAR(150) NOT NULL,
      libelle       VARCHAR(200) NOT NULL,
      ordre         INT,
      FOREIGN KEY (categorie_id) REFERENCES categorie_privilege (id) ON DELETE CASCADE
    );
    CREATE UNIQUE INDEX privilege_unique ON privilege (code);
    
    CREATE TABLE IF NOT EXISTS role_privilege (
      role_id       BIGINT NOT NULL,
      privilege_id  BIGINT NOT NULL,
      PRIMARY KEY (role_id, privilege_id),
      FOREIGN KEY (role_id) REFERENCES user_role (id) ON DELETE CASCADE,
      FOREIGN KEY (privilege_id) REFERENCES privilege (id) ON DELETE CASCADE
    );
    CREATE UNIQUE INDEX role_privilege_unique ON role_privilege (role_id, privilege_id);
    
    
    -- Données
    
    INSERT INTO user_role (id, role_id, is_default, parent_id) VALUES
    (1, 'Standard', 1, NULL),
    (2, 'Gestionnaire', 0, 1),
    (3, 'Super-gestionnaire', 0, 2),
    (4, 'Administrateur', 0, 3);
    
    INSERT INTO categorie_privilege (id, code, libelle, ordre) VALUES
    (1, 'droit', 'Gestion des droits', 1);
    
    INSERT INTO privilege (id, categorie_id, code, libelle, ordre) VALUES
    (1, 1, 'role-visualisation', 'Rôles - Visualisation', 1),
    (2, 1, 'role-edition', 'Rôles - Édition', 2),
    (3, 1, 'privilege-visualisation', 'Privilèges - Visualisation', 3),
    (4, 1, 'privilege-edition', 'Privilèges - Édition', 4);
    
    INSERT INTO role_privilege (role_id, privilege_id) VALUES
    (4, 1),
    (4, 2),
    (4, 3),
    (4, 4);
    
    INSERT INTO "user" (username, email, display_name, password, state) VALUES
      -- utilisateur demo/azerty
      ('demo', 'demo@mail.fr', 'Demo', '$2y$10$PxXnVLYnGEzEnfqPqRKJSe9AabocES2H4bBK5VzzJlzuj1rVt7Lwu', 1);
    
    INSERT INTO user_role_linker(user_id, role_id)
    SELECT u.id, r.id FROM "user" u, user_role r WHERE u.username = 'demo' and r.role_id = 'Standard';