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

Documentation

parent bdfbe023
Loading
Loading
Loading
Loading
Loading

doc/migration.md

0 → 100644
+14 −0
Original line number Diff line number Diff line
Migration
=========

Vous trouvez ici, les instructions permettant de passer à une version particulière qui introduit une imcompatibilité par
rapport aux précédentes versions.

## 8.0.0

Il est nécessaire de modifier la base de données et d'utiliser les scripts de migration disponibles :
* [PostgreSQL](../sql/migration_v8.0_postgresql.sql)
* [Oracle](../sql/migration_v8.0_oracle.sql)

> [!IMPORTANT]
> Il est nécessaire de bien vérifier les noms des tables et des séquences avant d'utiliser le script de migration.
 No newline at end of file
+0 −10
Original line number Diff line number Diff line
# Les rôles

<!-- TOC -->
* [Base de données](#base-de-données)
* [Configuration](#configuration)
* [Navigation](#navigation)
* [Gestion des rôles](#gestion-des-rôles)
@@ -11,15 +10,6 @@
    * [Identity provider](#identity-provider)
<!-- TOC -->

## Base de données

La liste des rôles et l'association des rôles et des utilisateursdoit être définies dans la base de données.

Scripts SQL de création des tables :
* [PostgreSQL](../sql/schema_postgresql.sql)
* [Oracle](../sql/schema_oracle.sql)


## Configuration

Il est possible de redéfinir l'entité utilisée pour gérer les rôle mais elle doit obligatoirement héritée de la classe `UnicaenUtilisateur\Entity\Db\AbstractRole`.
+0 −9
Original line number Diff line number Diff line
# Les utilisateurs

<!-- TOC -->
* [Base de données](#base-de-données)
* [Configuration](#configuration)
* [Recherche d'individu](#recherche-dindividu)
* [Navigation](#navigation)
@@ -15,14 +14,6 @@
  * [Filter](#filter)
<!-- TOC -->

## Base de données

La liste des utilisateurs doit être définies dans la base de données.

Scripts SQL de création des tables :
* [PostgreSQL](../sql/schema_postgresql.sql)
* [Oracle](../sql/schema_oracle.sql)


## Configuration

+10 −5
Original line number Diff line number Diff line
@@ -7,7 +7,8 @@
  * [Les rôles](#les-rôles)
* [Pré-requis](#pré-requis)
* [Installation](#installation)
* [Migration v8.0](#migration-v80)
* [Base de données](#base-de-données)
* [Migration](#migration)
* [Configuration](#configuration)
* [Utilisation du module](#utilisation-du-module)
<!-- TOC -->
@@ -47,11 +48,15 @@ $ composer require unicaen/utilisateur

Il faut activer le module **UnicaenUtilisateur** dans le fichier de config `config/application.config.php`

## Migration v8.0
## Base de données

Il est nécessaire de modifier la base de données et d'utiliser les scripts de migration disponibles :
* [PostgreSQL](./sql/migration_v8.0_postgresql.sql)
* [Oracle](./sql/migration_v8.0_oracle.sql)
Scripts SQL de création des tables :
* [PostgreSQL](./sql/schema_postgresql.sql)
* [Oracle](./sql/schema_oracle.sql)

## Migration

[Guide de migration selon les versions](./doc/migration.md)

## Configuration

+39 −39
Original line number Diff line number Diff line
-- -----------------------------------------------------
-- TABLE UNICAEN_UTILISATEUR_ROLE
-- Table unicaen_utilisateur_role
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS UNICAEN_UTILISATEUR_ROLE (
  ID                    SERIAL        PRIMARY KEY,
  ROLE_ID               VARCHAR(64)   NOT NULL,
  LIBELLE               VARCHAR(255)  NOT NULL,
  DESCRIPTION           TEXT          NOT NULL,
  IS_DEFAULT            BOOLEAN       DEFAULT false NOT NULL,
  IS_AUTO               BOOLEAN       DEFAULT false NOT NULL,
  PARENT_ID             INTEGER,
  LDAP_FILTER           VARCHAR(255)  DEFAULT NULL::character varying,
  ACCESSIBLE_EXTERIEUR  BOOLEAN       DEFAULT true NOT NULL,
  DISPLAYED             BOOLEAN       DEFAULT true NOT NULL,
  CONSTRAINT FK_UNICAEN_ROLE_PARENT FOREIGN KEY (PARENT_ID) REFERENCES UNICAEN_UTILISATEUR_ROLE (ID) DEFERRABLE INITIALLY IMMEDIATE
CREATE TABLE IF NOT EXISTS unicaen_utilisateur_role (
  id                    SERIAL        PRIMARY KEY,
  role_id               VARCHAR(64)   NOT NULL,
  libelle               VARCHAR(255)  NOT NULL,
  description           TEXT          NOT NULL,
  is_default            BOOLEAN       DEFAULT false NOT NULL,
  is_auto               BOOLEAN       DEFAULT false NOT NULL,
  parent_id             INTEGER,
  ldap_filter           VARCHAR(255)  DEFAULT NULL::character varying,
  accessible_exterieur  BOOLEAN       DEFAULT true NOT NULL,
  displayed             BOOLEAN       DEFAULT true NOT NULL,
  CONSTRAINT fk_unicaen_role_parent FOREIGN KEY (parent_id) REFERENCES unicaen_utilisateur_role (id) DEFERRABLE INITIALLY IMMEDIATE
);

CREATE UNIQUE INDEX UN_UNICAEN_ROLE_ROLE ON UNICAEN_UTILISATEUR_ROLE (ROLE_ID);
CREATE INDEX IX_UNICAEN_ROLE_PARENT ON UNICAEN_UTILISATEUR_ROLE (PARENT_ID);
CREATE UNIQUE INDEX un_unicaen_role_role ON unicaen_utilisateur_role (role_id);
CREATE INDEX ix_unicaen_role_parent ON unicaen_utilisateur_role (parent_id);


-- -----------------------------------------------------
-- TABLE UNICAEN_UTILISATEUR_USER
-- Table unicaen_utilisateur_user
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS UNICAEN_UTILISATEUR_USER (
  ID                    SERIAL        PRIMARY KEY,
  USERNAME              VARCHAR(255)  NOT NULL,
  DISPLAY_NAME          VARCHAR(255)  NOT NULL,
  EMAIL                 VARCHAR(255),
  PASSWORD              VARCHAR(128)  DEFAULT 'application'::character varying NOT NULL,
  STATE                 BOOLEAN       DEFAULT true NOT NULL,
  PASSWORD_RESET_TOKEN  VARCHAR(256),
  LAST_ROLE_ID          INTEGER,
  CONSTRAINT FK_UNICAEN_USER_LAST_ROLE FOREIGN KEY (LAST_ROLE_ID) REFERENCES UNICAEN_UTILISATEUR_ROLE(ID) DEFERRABLE INITIALLY IMMEDIATE
CREATE TABLE IF NOT EXISTS unicaen_utilisateur_user (
  id                    SERIAL        PRIMARY KEY,
  username              VARCHAR(255)  NOT NULL,
  display_name          VARCHAR(255)  NOT NULL,
  email                 VARCHAR(255),
  password              VARCHAR(128)  DEFAULT 'application'::character varying NOT NULL,
  state                 BOOLEAN       DEFAULT true NOT NULL,
  password_reset_token  VARCHAR(256),
  last_role_id          INTEGER,
  CONSTRAINT fk_unicaen_user_last_role FOREIGN KEY (last_role_id) REFERENCES unicaen_utilisateur_role(id) DEFERRABLE INITIALLY IMMEDIATE
);

CREATE UNIQUE INDEX UN_UNICAEN_USER_USERNAME ON UNICAEN_UTILISATEUR_USER(USERNAME);
CREATE UNIQUE INDEX UN_UNICAEN_USER_PASSWORD_RESET_TOKEN ON UNICAEN_UTILISATEUR_USER(PASSWORD_RESET_TOKEN);
CREATE INDEX IX_UNICAEN_USER_LAST_ROLE ON UNICAEN_UTILISATEUR_USER(LAST_ROLE_ID);
CREATE UNIQUE INDEX un_unicaen_user_username ON unicaen_utilisateur_user(username);
CREATE UNIQUE INDEX un_unicaen_user_password_reset_token ON unicaen_utilisateur_user(password_reset_token);
CREATE INDEX ix_unicaen_user_last_role ON unicaen_utilisateur_user(last_role_id);


-- -----------------------------------------------------
-- TABLE UNICAEN_UTILISATEUR_USER_ROLE_LINKER
-- Table unicaen_utilisateur_user_role_linker
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS UNICAEN_UTILISATEUR_USER_ROLE_LINKER (
  ID               SERIAL  PRIMARY KEY,
  USER_ID          INTEGER NOT NULL,
  ROLE_ID          INTEGER NOT NULL,
  CONSTRAINT FK_UNICAEN_USER_ROLE_LINKER_USER FOREIGN KEY (USER_ID) REFERENCES UNICAEN_UTILISATEUR_USER (ID) DEFERRABLE INITIALLY IMMEDIATE,
  CONSTRAINT FK_UNICAEN_USER_ROLE_LINKER_ROLE FOREIGN KEY (ROLE_ID) REFERENCES UNICAEN_UTILISATEUR_ROLE (ID) DEFERRABLE INITIALLY IMMEDIATE
CREATE TABLE IF NOT EXISTS unicaen_utilisateur_user_role_linker (
  id               SERIAL  PRIMARY KEY,
  user_id          INTEGER NOT NULL,
  role_id          INTEGER NOT NULL,
  CONSTRAINT fk_unicaen_user_role_linker_user FOREIGN KEY (user_id) REFERENCES unicaen_utilisateur_user (id) DEFERRABLE INITIALLY IMMEDIATE,
  CONSTRAINT fk_unicaen_user_role_linker_role FOREIGN KEY (role_id) REFERENCES unicaen_utilisateur_role (id) DEFERRABLE INITIALLY IMMEDIATE
);

CREATE UNIQUE INDEX UN_UNICAEN_USER_ROLE_LINKER ON UNICAEN_UTILISATEUR_USER_ROLE_LINKER(USER_ID, ROLE_ID);
CREATE INDEX IX_UNICAEN_UTILISATEUR_ROLE_LINKER_USER ON UNICAEN_UTILISATEUR_USER_ROLE_LINKER (USER_ID);
CREATE INDEX IX_UNICAEN_UTILISATEUR_ROLE_LINKER_ROLE ON UNICAEN_UTILISATEUR_USER_ROLE_LINKER (ROLE_ID);
CREATE UNIQUE INDEX un_unicaen_user_role_linker ON unicaen_utilisateur_user_role_linker(user_id, role_id);
CREATE INDEX ix_unicaen_utilisateur_role_linker_user ON unicaen_utilisateur_user_role_linker (user_id);
CREATE INDEX ix_unicaen_utilisateur_role_linker_role ON unicaen_utilisateur_user_role_linker (role_id);


-- DATA