Commit 4ef3b749 authored by David Surville's avatar David Surville
Browse files

Prise en compte des entités définies dans la config au lieu des entités de la...

Prise en compte des entités définies dans la config au lieu des entités de la bibliothèque + fichiers SQL
parent 19095db0
Loading
Loading
Loading
Loading
+80 −11
Changes for config/unicaen-utilisateur.global.php.dist: 80 added lines, 11 removed lines.
Original line number Diff line number Diff line
<?php

use Octopus\Service\Individu\IndividuService;
use UnicaenUtilisateur\Service\OtherSources\LdapService;
use UnicaenAuthentification\Provider\Identity\Chain;
use UnicaenUtilisateur\Entity\Db\Role;
use UnicaenUtilisateur\Entity\Db\User;
use UnicaenUtilisateur\Provider\Privilege\RolePrivileges;
use UnicaenUtilisateur\Provider\Privilege\UtilisateurPrivileges;
use UnicaenUtilisateur\Provider\Role\DbRole;
use UnicaenUtilisateur\Provider\Role\Username;
use UnicaenUtilisateur\Service\User\UserService;
use UnicaenUtilisateur\Service\OtherSources\LdapService;

return [
    /**
     * L'entité associée aux utilisateurs peut être spécifiée via la clef de configuration ['zfcuser']['user_entity_class']
     * si elle est manquante alors la classe \UnicaenUtiliseur\Entity\Db\User est utilisée
     * NB: la classe spécifiée doit hériter de \UnicaenUtiliseur\Entity\Db\AbstractUser.
     * Si elle est manquante alors la classe @see \UnicaenUtilisateur\Entity\Db\User est utilisée
     * NB: la classe spécifiée doit hériter de @see \UnicaenUtilisateur\Entity\Db\AbstractUser
     */
    'zfcuser' => [
        'user_entity_class' => \UnicaenUtilisateur\Entity\Db\User::class,
        'user_entity_class' => User::class,

        /**
         * Enable registration
         * Allows users to register through the website.
         * Accepted values: boolean true or false
         */
        'enable_registration' => false,
    ],

    'bjyauthorize' => [
        /* this module uses a meta-role that inherits from any roles that should
         * be applied to the active user. the identity provider tells us which
         * roles the "identity role" should inherit from.
         *
         * for ZfcUser, this will be your default identity provider
         */
        'identity_provider' => Chain::class,

        /* role providers simply provide a list of roles that should be inserted
         * into the Zend\Acl instance. the module comes with two providers, one
         * to specify roles in a config file and one to load roles using a
         * Zend\Db adapter.
         */
        'role_providers'    => [
            /**
     * 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.
             * Fournit les rôles issus de la base de données éventuelle de l'appli.
             * NB: si le rôle par défaut 'guest' est fourni ici, il ne sera pas ajouté en double dans les ACL.
             * NB: si la connexion à la base échoue, ce n'est pas bloquant!
             */
            DbRole::class   => [],

            /**
             * Fournit le rôle correspondant à l'identifiant de connexion de l'utilisateur.
             * Cela est utile lorsque l'on veut gérer les habilitations d'un utilisateur unique
             * sur des ressources.
             */
            Username::class => [],
        ],
    ],

    'unicaen-auth' => [
        'role_entity_class' => \UnicaenUtilisateur\Entity\Db\Role::class,
        /**
         * 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 @see \UnicaenUtilisateur\Entity\Db\Role est utilisée
         * NB: la classe spécifiée doit hériter de @see \UnicaenUtilisateur\Entity\Db\AbstractRole
         */
        'role_entity_class' => Role::class,
    ],

    'unicaen-utilisateur' => [
        'recherche-individu' => [
            'app'       => UserService::class,
            'ldap'      => LdapService::class,
            'octopus'   => IndividuService::class,
//            'ldap'      => LdapService::class,
//            'octopus'   => IndividuService::class,
        ],
    ],

    'navigation' => [
        'default' => [
            'home' => [
                'pages' => [
                    'droits' => [
                        'pages' => [
                            [
                                'label' => 'Gérer les utilisateurs',
                                'title' => 'Gérer les utilisateurs',
                                'route' => 'unicaen-utilisateur',
                                'resource' => UtilisateurPrivileges::getResourceId(UtilisateurPrivileges::UTILISATEUR_AFFICHER),
                            ],
                            [
                                'label' => 'Gérer les rôles',
                                'title' => 'Gérer les rôles',
                                'route' => 'unicaen-role',
                                'resource' => RolePrivileges::getResourceId(RolePrivileges::ROLE_AFFICHER),
                            ],
                        ],
                    ],
                ],
            ],
        ],
    ],
];
 No newline at end of file
+78 −0
Changes for data/sql/schema_oracle.sql: 78 added lines, 0 removed lines.
Original line number Diff line number Diff line
-- -----------------------------------------------------
-- TABLE UNICAEN_UTILISATEUR_ROLE
-- -----------------------------------------------------
CREATE SEQUENCE UNICAEN_UTILISATEUR_ROLE_ID_SEQ NOCYCLE START WITH 1 INCREMENT BY 1 MINVALUE 0;

CREATE TABLE UNICAEN_UTILISATEUR_ROLE (
  ID                    NUMBER(*, 0)    NOT NULL,
  ROLE_ID               VARCHAR2(64)    NOT NULL,
  LIBELLE               VARCHAR2(255)   NOT NULL,
  IS_DEFAULT            NUMBER(1)       DEFAULT 0 NOT NULL,
  IS_AUTO               NUMBER(1)       DEFAULT 0 NOT NULL,
  PARENT_ID             NUMBER(*, 0),
  LDAP_FILTER           VARCHAR2(255),
  ACCESSIBLE_EXTERIEUR  NUMBER(1)       DEFAULT 1 NOT NULL,
  CONSTRAINT PK_UNICAEN_UTILISATEUR_ROLE PRIMARY KEY (ID),
  CONSTRAINT UN_UNICAEN_UTILISATEUR_ROLE_ROLE UNIQUE (ROLE_ID),
  CONSTRAINT FK_UNICAEN_UTILISATEUR_ROLE_PARENT FOREIGN KEY (PARENT_ID) REFERENCES UNICAEN_UTILISATEUR_ROLE (ID) DEFERRABLE INITIALLY IMMEDIATE
);

CREATE INDEX IX_UTILISATEUR_ROLE_PARENT ON UTILISATEUR_ROLE (PARENT_ID);


-- -----------------------------------------------------
-- TABLE UNICAEN_UTILISATEUR_USER
-- -----------------------------------------------------
CREATE SEQUENCE UNICAEN_UTILISATEUR_USER_ID_SEQ NOCYCLE START WITH 1 INCREMENT BY 1 MINVALUE 0;

CREATE TABLE UNICAEN_UTILISATEUR_USER (
  ID                    NUMBER(*, 0)       NOT NULL,
  USERNAME              VARCHAR2(255 CHAR) NOT NULL,
  DISPLAY_NAME          VARCHAR2(255 CHAR) NOT NULL,
  EMAIL                 VARCHAR2(255 CHAR) NULL,
  PASSWORD              VARCHAR2(128 CHAR) NOT NULL,
  STATE                 SMALLINT DEFAULT 1 NOT NULL,
  PASSWORD_RESET_TOKEN  VARCHAR2(256) DEFAULT NULL,
  LAST_ROLE_ID          NUMBER(*,0),
  CONSTRAINT PK_UNICAEN_UTILISATEUR_USER PRIMARY KEY (ID),
  CONSTRAINT UN_UNICAEN_UTILISATEUR_USER_USERNAME UNIQUE (USERNAME),
  CONSTRAINT UN_UNICAEN_UTILISATEUR_USER_PASSWORD_RESET_TOKEN UNIQUE (PASSWORD_RESET_TOKEN),
  CONSTRAINT FK_UNICAEN_UTILISATEUR_USER_LAST_ROLE FOREIGN KEY (LAST_ROLE_ID) REFERENCES UNICAEN_UTILISATEUR_ROLE(ID) DEFERRABLE INITIALLY IMMEDIATE
);

CREATE INDEX IX_UNICAEN_UTILISATEUR_USER_LAST_ROLE ON UNICAEN_UTILISATEUR_USER(LAST_ROLE_ID);


-- -----------------------------------------------------
-- TABLE UNICAEN_UTILISATEUR_ROLE_LINKER
-- -----------------------------------------------------
CREATE TABLE UNICAEN_UTILISATEUR_ROLE_LINKER (
  UTILISATEUR_ID  NUMBER(*, 0) NOT NULL,
  ROLE_ID         NUMBER(*, 0) NOT NULL,
  CONSTRAINT PK_UNICAEN_UTILISATEUR_ROLE_LINKER PRIMARY KEY (UTILISATEUR_ID, ROLE_ID),
  CONSTRAINT FK_UNICAEN_UTILISATEUR_ROLE_LINKER_USER FOREIGN KEY (UTILISATEUR_ID) REFERENCES UNICAEN_UTILISATEUR_USER (ID) DEFERRABLE INITIALLY IMMEDIATE,
  CONSTRAINT FK_UNICAEN_UTILISATEUR_ROLE_LINKER_ROLE FOREIGN KEY (ROLE_ID) REFERENCES UNICAEN_UTILISATEUR_ROLE (ID) DEFERRABLE INITIALLY IMMEDIATE
);

CREATE INDEX IX_UNICAEN_UTILISATEUR_ROLE_LINKER_USER ON UNICAEN_UTILISATEUR_ROLE_LINKER (UTILISATEUR_ID);
CREATE INDEX IX_UNICAEN_UTILISATEUR_ROLE_LINKER_ROLE ON UNICAEN_UTILISATEUR_ROLE_LINKER (ROLE_ID);


-- DATA

INSERT INTO UNICAEN_UTILISATEUR_USER (
  ID,
  USERNAME,
  EMAIL,
  DISPLAY_NAME,
  PASSWORD)
WITH tmp AS (
  SELECT 1, 'app' u, 'dsi.applications@unicaen.fr'  e, 'Application'  n, 'application' p FROM dual
)
SELECT
  UNICAEN_UTILISATEUR_USER_ID_SEQ.nextval,
  tmp.u,
  tmp.e,
  tmp.n,
  tmp.p
FROM tmp;
 No newline at end of file
+74 −0
Changes for data/sql/schema_postgresql.sql: 74 added lines, 0 removed lines.
Original line number Diff line number Diff line
-- -----------------------------------------------------
-- TABLE UNICAEN_UTILISATEUR_ROLE
-- -----------------------------------------------------
CREATE TABLE UNICAEN_UTILISATEUR_ROLE (
  ID                    SERIAL        PRIMARY KEY,
  ROLE_ID               VARCHAR(64)   NOT NULL,
  LIBELLE               VARCHAR(255)  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,
  CONSTRAINT FK_UNICAEN_UTILISATEUR_ROLE_PARENT FOREIGN KEY (PARENT_ID) REFERENCES UNICAEN_UTILISATEUR_ROLE (ID) DEFERRABLE INITIALLY IMMEDIATE
);

CREATE UNIQUE INDEX UN_UNICAEN_UTILISATEUR_ROLE_ROLE_ID ON UNICAEN_UTILISATEUR_ROLE (ROLE_ID);
CREATE INDEX IX_UNICAEN_UTILISATEUR_ROLE_PARENT ON UNICAEN_UTILISATEUR_ROLE (PARENT_ID);


-- -----------------------------------------------------
-- TABLE UNICAEN_UTILISATEUR_USER
-- -----------------------------------------------------
CREATE TABLE 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 UN_UNICAEN_UTILISATEUR_USER_USERNAME UNIQUE (USERNAME),
  CONSTRAINT UN_UNICAEN_UTILISATEUR_USER_PASSWORD_RESET_TOKEN UNIQUE (PASSWORD_RESET_TOKEN),
  CONSTRAINT FK_UNICAEN_UTILISATEUR_USER_LAST_ROLE FOREIGN KEY (LAST_ROLE_ID) REFERENCES UNICAEN_UTILISATEUR_ROLE(ID) DEFERRABLE INITIALLY IMMEDIATE
);

CREATE UNIQUE INDEX UN_UNICAEN_UTILISATEUR_USER_USERNAME ON UNICAEN_UTILISATEUR_USER(USERNAME);
CREATE UNIQUE INDEX UN_UNICAEN_UTILISATEUR_USER_PASSWORD_RESET_TOKEN ON UNICAEN_UTILISATEUR_USER(PASSWORD_RESET_TOKEN);
CREATE INDEX IX_UNICAEN_UTILISATEUR_USER_LAST_ROLE ON UNICAEN_UTILISATEUR_USER(LAST_ROLE_ID);


-- -----------------------------------------------------
-- TABLE UNICAEN_UTILISATEUR_ROLE_LINKER
-- -----------------------------------------------------
CREATE TABLE UNICAEN_UTILISATEUR_ROLE_LINKER (
  UTILISATEUR_ID  INTEGER NOT NULL,
  ROLE_ID         INTEGER NOT NULL,
  CONSTRAINT PK_UNICAEN_UTILISATEUR_ROLE_LINKER PRIMARY KEY (UTILISATEUR_ID, ROLE_ID),
  CONSTRAINT FK_UNICAEN_UTILISATEUR_ROLE_LINKER_USER FOREIGN KEY (UTILISATEUR_ID) REFERENCES UNICAEN_UTILISATEUR_USER (ID) DEFERRABLE INITIALLY IMMEDIATE,
  CONSTRAINT FK_UNICAEN_UTILISATEUR_ROLE_LINKER_ROLE FOREIGN KEY (ROLE_ID) REFERENCES UNICAEN_UTILISATEUR_ROLE (ID) DEFERRABLE INITIALLY IMMEDIATE
);

CREATE INDEX IX_UNICAEN_UTILISATEUR_ROLE_LINKER_USER ON UNICAEN_UTILISATEUR_ROLE_LINKER (UTILISATEUR_ID);
CREATE INDEX IX_UNICAEN_UTILISATEUR_ROLE_LINKER_ROLE ON UNICAEN_UTILISATEUR_ROLE_LINKER (ROLE_ID);


-- DATA

INSERT INTO UNICAEN_UTILISATEUR_USER (
  ID,
  USERNAME,
  EMAIL,
  DISPLAY_NAME,
  PASSWORD)
WITH tmp AS (
  SELECT 1, 'app' u, 'dsi.applications@unicaen.fr'  e, 'Application'  n, 'application' p FROM dual
)
SELECT
  UNICAEN_UTILISATEUR_USER_ID_SEQ.nextval,
  tmp.u,
  tmp.e,
  tmp.n,
  tmp.p
FROM tmp;
 No newline at end of file

doc/release-notes/v0.0.1.md

deleted100644 → 0
+0 −12
Changes for doc/release-notes/v0.0.1.md: 0 added lines, 12 removed lines.
Original line number Diff line number Diff line
# v0.0.1

## 1. Sur le serveur d'application

```bash 
composer install unicaen/utilisateur
```

## 2. Dans la base de données

- penser à executer les fichiers sql créant les tables et les insertions minimales

doc/sql/001_db_tables.sql

deleted100644 → 0
+0 −56
Changes for doc/sql/001_db_tables.sql: 0 added lines, 56 removed lines.
Original line number Diff line number Diff line
-------------------------------------------------------------------------------
-- ROLE -----------------------------------------------------------------------
-------------------------------------------------------------------------------

create table unicaen_utilisateur_role
(
    id serial not null
        constraint role_pkey
            primary key,
    libelle varchar(200) not null,
    role_id varchar(64) not null,
    is_default boolean default false not null,
    is_auto boolean default false not null,
    ldap_filter varchar(35) default NULL::character varying,
    parent_id integer
);

create unique index role_id_uindex
    on unicaen_utilisateur_role (id);

-------------------------------------------------------------------------------
-- UTILISATEUR ----------------------------------------------------------------
-------------------------------------------------------------------------------
create table unicaen_utilisateur_user
(
    id serial not null
        constraint user_pkey
            primary key,
    username varchar(255) not null,
    display_name varchar(255) not null,
    email varchar(255),
    password varchar(128) default 'db'::character varying not null,
    state boolean default true not null,
    password_reset_token integer,
    last_role_id integer
);

create unique index user_id_uindex
    on unicaen_utilisateur_user (id);

-------------------------------------------------------------------------------
-- LINKER ---------------------------------------------------------------------
-------------------------------------------------------------------------------
create table unicaen_utilisateur_role_linker
(
    user_id integer not null
        constraint user_role_linker_user_id_fk
            references unicaen_utilisateur_user
            on delete cascade,
    role_id integer not null
        constraint user_role_linker_role_id_fk
            references unicaen_utilisateur_role
            on delete cascade,
    constraint user_role_linker_pk
        primary key (user_id, role_id)
);
Loading