Loading config/merged/role.config.php +14 −28 Original line number Diff line number Diff line Loading @@ -9,6 +9,12 @@ use UnicaenUtilisateur\Form\Role\RoleHydratorFactory; use UnicaenUtilisateur\Service\Role\RoleService; use UnicaenUtilisateur\Service\Role\RoleServiceFactory; use UnicaenUtilisateur\Provider\Privilege\RolePrivileges; use UnicaenUtilisateur\Provider\Role\Config; use UnicaenUtilisateur\Provider\Role\ConfigServiceFactory; use UnicaenUtilisateur\Provider\Role\DbRole; use UnicaenUtilisateur\Provider\Role\DbRoleServiceFactory; use UnicaenUtilisateur\Provider\Role\Username; use UnicaenUtilisateur\Provider\Role\UsernameServiceFactory; use UnicaenPrivilege\Guard\PrivilegeController; use Zend\Router\Http\Literal; use Zend\Router\Http\Segment; Loading @@ -21,7 +27,7 @@ return [ 'controller' => RoleController::class, 'action' => [ 'index', 'listing', 'exporter', ], 'privileges' => [ RolePrivileges::ROLE_AFFICHER, Loading Loading @@ -50,28 +56,9 @@ return [ ], ], 'navigation' => [ 'default' => [ 'home' => [ 'pages' => [ 'administration' => [ 'pages' => [ 'role' => [ 'label' => 'Rôle', 'route' => 'role', 'resource' => RolePrivileges::getResourceId(RolePrivileges::ROLE_AFFICHER), 'order' => 1002, ], ], ], ], ], ], ], 'router' => [ 'routes' => [ 'role' => [ 'unicaen-role' => [ 'type' => Literal::class, 'options' => [ 'route' => '/role', Loading @@ -82,13 +69,13 @@ return [ ], 'may_terminate' => true, 'child_routes' => [ 'listing' => [ 'exporter' => [ 'type' => Segment::class, 'options' => [ 'route' => '/listing/:role', 'route' => '/exporter/:role', 'defaults' => [ 'controller' => RoleController::class, 'action' => 'listing', 'action' => 'exporter', ], ], ], Loading Loading @@ -129,10 +116,9 @@ return [ 'service_manager' => [ 'factories' => [ 'UnicaenUtilisateur\Provider\Role\Config' => 'UnicaenUtilisateur\Provider\Role\ConfigServiceFactory', 'UnicaenUtilisateur\Provider\Role\Config' => 'UnicaenUtilisateur\Provider\Role\ConfigServiceFactory', 'UnicaenUtilisateur\Provider\Role\DbRole' => 'UnicaenUtilisateur\Provider\Role\DbRoleServiceFactory', 'UnicaenUtilisateur\Provider\Role\Username' => 'UnicaenUtilisateur\Provider\Role\UsernameServiceFactory', Config::class => ConfigServiceFactory::class, DbRole::class => DbRoleServiceFactory::class, Username::class => UsernameServiceFactory::class, RoleService::class => RoleServiceFactory::class, ], ], Loading config/merged/utilisateur.config.php +35 −68 Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ use UnicaenUtilisateur\Form\User\UserForm; use UnicaenUtilisateur\Form\User\UserFormFactory; use UnicaenUtilisateur\Form\User\UserHydrator; use UnicaenUtilisateur\Form\User\UserHydratorFactory; use UnicaenUtilisateur\Form\User\UserRechercheForm; use UnicaenUtilisateur\Provider\Privilege\UtilisateurPrivileges; use UnicaenUtilisateur\Service\Role\RoleService; use UnicaenUtilisateur\Service\Role\RoleServiceFactory; Loading @@ -16,6 +17,17 @@ use Zend\Router\Http\Literal; use Zend\Router\Http\Segment; return [ 'unicaen-utilisateur' => [ /** * Liste des services utilisée pour rechercher un utilisateur existant ou à ajouter dans l'application. * Le service 'app' est défini par défaut et va rechercher dans la table des utilisateurs défini dans le paramètre 'user_entity_class'. */ 'recherche-individu' => [ 'app' => UserService::class, ], ], 'bjyauthorize' => [ 'guards' => [ PrivilegeController::class => [ Loading @@ -24,9 +36,8 @@ return [ 'action' => [ 'index', 'rechercher', 'rechercher-utilisateur', 'listing', 'export' 'lister', 'exporter' ], 'privileges' => [ UtilisateurPrivileges::UTILISATEUR_AFFICHER, Loading @@ -35,7 +46,7 @@ return [ [ 'controller' => UtilisateurController::class, 'action' => [ 'effacer', 'supprimer', 'ajouter', ], 'privileges' => [ Loading @@ -45,7 +56,7 @@ return [ [ 'controller' => UtilisateurController::class, 'action' => [ 'changer-status', 'changer-statut', ], 'privileges' => [ UtilisateurPrivileges::UTILISATEUR_CHANGERSTATUS, Loading @@ -65,43 +76,9 @@ return [ ], ], 'navigation' => [ 'default' => [ 'home' => [ 'pages' => [ 'administration' => [ 'pages' => [ 'utilisateur' => [ 'label' => 'Utilisateur', 'route' => 'utilisateur-preecog', 'resource' => UtilisateurPrivileges::getResourceId(UtilisateurPrivileges::UTILISATEUR_AFFICHER), 'order' => 1001, 'pages' => [ 'listing-utilisateur' => [ 'label' => 'Listing', 'route' => 'utilisateur-preecog/listing', 'resource' => UtilisateurPrivileges::getResourceId(UtilisateurPrivileges::UTILISATEUR_AFFICHER), 'order' => 10001, ], 'ajouter-utilisateur' => [ 'label' => 'Listing', 'route' => 'utilisateur-preecog/ajouter', 'resource' => UtilisateurPrivileges::getResourceId(UtilisateurPrivileges::UTILISATEUR_AJOUTER), 'order' => 10001, ], ], ], ], ], ], ], ], ], 'router' => [ 'routes' => [ 'utilisateur-preecog' => [ 'unicaen-utilisateur' => [ 'type' => Literal::class, 'options' => [ 'route' => '/utilisateur', Loading @@ -112,13 +89,13 @@ return [ ], 'may_terminate' => true, 'child_routes' => [ 'listing' => [ 'lister' => [ 'type' => Literal::class, 'options' => [ 'route' => '/listing', 'route' => '/lister', 'defaults' => [ 'controller' => UtilisateurController::class, 'action' => 'listing', 'action' => 'lister', ], ], ], Loading @@ -132,36 +109,26 @@ return [ ], ], ], 'export' => [ 'exporter' => [ 'type' => Literal::class, 'options' => [ 'route' => '/export', 'route' => '/exporter', 'defaults' => [ 'controller' => UtilisateurController::class, 'action' => 'export', 'action' => 'exporter', ], ], ], 'rechercher' => [ 'type' => Segment::class, 'options' => [ 'route' => '/rechercher[/:service-name]', 'route' => '/rechercher', 'defaults' => [ 'controller' => UtilisateurController::class, 'action' => 'rechercher', ], ], ], 'rechercher-utilisateur' => [ 'type' => Literal::class, 'options' => [ 'route' => '/rechercher-utilisateur', 'defaults' => [ 'controller' => UtilisateurController::class, 'action' => 'rechercher-utilisateur', ], ], ], 'add-role' => [ 'type' => Segment::class, 'options' => [ Loading @@ -182,23 +149,23 @@ return [ ], ], ], 'changer-status' => [ 'changer-statut' => [ 'type' => Segment::class, 'options' => [ 'route' => '/changer-status/:utilisateur', 'route' => '/changer-statut/:utilisateur', 'defaults' => [ 'controller' => UtilisateurController::class, 'action' => 'changer-status', 'action' => 'changer-statut', ], ], ], 'effacer' => [ 'supprimer' => [ 'type' => Segment::class, 'options' => [ 'route' => '/effacer/:utilisateur', 'route' => '/supprimer/:utilisateur', 'defaults' => [ 'controller' => UtilisateurController::class, 'action' => 'effacer', 'action' => 'supprimer', ], ], ], Loading @@ -213,16 +180,16 @@ return [ RoleService::class => RoleServiceFactory::class, ], ], 'form_elements' => [ 'factories' => [ UserForm::class => UserFormFactory::class, 'invokables' => [ UserRechercheForm::class => UserRechercheForm::class, ], ], 'hydrators' => [ 'factories' => [ UserHydrator::class => UserHydratorFactory::class, UserForm::class => UserFormFactory::class, ], ], 'controllers' => [ 'factories' => [ UtilisateurController::class => UtilisateurControllerFactory::class, Loading config/unicaen-utilisateur.global.php.dist +82 −13 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 data/sql/schema_oracle.sql 0 → 100644 +78 −0 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 data/sql/schema_postgresql.sql 0 → 100644 +74 −0 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 Loading
config/merged/role.config.php +14 −28 Original line number Diff line number Diff line Loading @@ -9,6 +9,12 @@ use UnicaenUtilisateur\Form\Role\RoleHydratorFactory; use UnicaenUtilisateur\Service\Role\RoleService; use UnicaenUtilisateur\Service\Role\RoleServiceFactory; use UnicaenUtilisateur\Provider\Privilege\RolePrivileges; use UnicaenUtilisateur\Provider\Role\Config; use UnicaenUtilisateur\Provider\Role\ConfigServiceFactory; use UnicaenUtilisateur\Provider\Role\DbRole; use UnicaenUtilisateur\Provider\Role\DbRoleServiceFactory; use UnicaenUtilisateur\Provider\Role\Username; use UnicaenUtilisateur\Provider\Role\UsernameServiceFactory; use UnicaenPrivilege\Guard\PrivilegeController; use Zend\Router\Http\Literal; use Zend\Router\Http\Segment; Loading @@ -21,7 +27,7 @@ return [ 'controller' => RoleController::class, 'action' => [ 'index', 'listing', 'exporter', ], 'privileges' => [ RolePrivileges::ROLE_AFFICHER, Loading Loading @@ -50,28 +56,9 @@ return [ ], ], 'navigation' => [ 'default' => [ 'home' => [ 'pages' => [ 'administration' => [ 'pages' => [ 'role' => [ 'label' => 'Rôle', 'route' => 'role', 'resource' => RolePrivileges::getResourceId(RolePrivileges::ROLE_AFFICHER), 'order' => 1002, ], ], ], ], ], ], ], 'router' => [ 'routes' => [ 'role' => [ 'unicaen-role' => [ 'type' => Literal::class, 'options' => [ 'route' => '/role', Loading @@ -82,13 +69,13 @@ return [ ], 'may_terminate' => true, 'child_routes' => [ 'listing' => [ 'exporter' => [ 'type' => Segment::class, 'options' => [ 'route' => '/listing/:role', 'route' => '/exporter/:role', 'defaults' => [ 'controller' => RoleController::class, 'action' => 'listing', 'action' => 'exporter', ], ], ], Loading Loading @@ -129,10 +116,9 @@ return [ 'service_manager' => [ 'factories' => [ 'UnicaenUtilisateur\Provider\Role\Config' => 'UnicaenUtilisateur\Provider\Role\ConfigServiceFactory', 'UnicaenUtilisateur\Provider\Role\Config' => 'UnicaenUtilisateur\Provider\Role\ConfigServiceFactory', 'UnicaenUtilisateur\Provider\Role\DbRole' => 'UnicaenUtilisateur\Provider\Role\DbRoleServiceFactory', 'UnicaenUtilisateur\Provider\Role\Username' => 'UnicaenUtilisateur\Provider\Role\UsernameServiceFactory', Config::class => ConfigServiceFactory::class, DbRole::class => DbRoleServiceFactory::class, Username::class => UsernameServiceFactory::class, RoleService::class => RoleServiceFactory::class, ], ], Loading
config/merged/utilisateur.config.php +35 −68 Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ use UnicaenUtilisateur\Form\User\UserForm; use UnicaenUtilisateur\Form\User\UserFormFactory; use UnicaenUtilisateur\Form\User\UserHydrator; use UnicaenUtilisateur\Form\User\UserHydratorFactory; use UnicaenUtilisateur\Form\User\UserRechercheForm; use UnicaenUtilisateur\Provider\Privilege\UtilisateurPrivileges; use UnicaenUtilisateur\Service\Role\RoleService; use UnicaenUtilisateur\Service\Role\RoleServiceFactory; Loading @@ -16,6 +17,17 @@ use Zend\Router\Http\Literal; use Zend\Router\Http\Segment; return [ 'unicaen-utilisateur' => [ /** * Liste des services utilisée pour rechercher un utilisateur existant ou à ajouter dans l'application. * Le service 'app' est défini par défaut et va rechercher dans la table des utilisateurs défini dans le paramètre 'user_entity_class'. */ 'recherche-individu' => [ 'app' => UserService::class, ], ], 'bjyauthorize' => [ 'guards' => [ PrivilegeController::class => [ Loading @@ -24,9 +36,8 @@ return [ 'action' => [ 'index', 'rechercher', 'rechercher-utilisateur', 'listing', 'export' 'lister', 'exporter' ], 'privileges' => [ UtilisateurPrivileges::UTILISATEUR_AFFICHER, Loading @@ -35,7 +46,7 @@ return [ [ 'controller' => UtilisateurController::class, 'action' => [ 'effacer', 'supprimer', 'ajouter', ], 'privileges' => [ Loading @@ -45,7 +56,7 @@ return [ [ 'controller' => UtilisateurController::class, 'action' => [ 'changer-status', 'changer-statut', ], 'privileges' => [ UtilisateurPrivileges::UTILISATEUR_CHANGERSTATUS, Loading @@ -65,43 +76,9 @@ return [ ], ], 'navigation' => [ 'default' => [ 'home' => [ 'pages' => [ 'administration' => [ 'pages' => [ 'utilisateur' => [ 'label' => 'Utilisateur', 'route' => 'utilisateur-preecog', 'resource' => UtilisateurPrivileges::getResourceId(UtilisateurPrivileges::UTILISATEUR_AFFICHER), 'order' => 1001, 'pages' => [ 'listing-utilisateur' => [ 'label' => 'Listing', 'route' => 'utilisateur-preecog/listing', 'resource' => UtilisateurPrivileges::getResourceId(UtilisateurPrivileges::UTILISATEUR_AFFICHER), 'order' => 10001, ], 'ajouter-utilisateur' => [ 'label' => 'Listing', 'route' => 'utilisateur-preecog/ajouter', 'resource' => UtilisateurPrivileges::getResourceId(UtilisateurPrivileges::UTILISATEUR_AJOUTER), 'order' => 10001, ], ], ], ], ], ], ], ], ], 'router' => [ 'routes' => [ 'utilisateur-preecog' => [ 'unicaen-utilisateur' => [ 'type' => Literal::class, 'options' => [ 'route' => '/utilisateur', Loading @@ -112,13 +89,13 @@ return [ ], 'may_terminate' => true, 'child_routes' => [ 'listing' => [ 'lister' => [ 'type' => Literal::class, 'options' => [ 'route' => '/listing', 'route' => '/lister', 'defaults' => [ 'controller' => UtilisateurController::class, 'action' => 'listing', 'action' => 'lister', ], ], ], Loading @@ -132,36 +109,26 @@ return [ ], ], ], 'export' => [ 'exporter' => [ 'type' => Literal::class, 'options' => [ 'route' => '/export', 'route' => '/exporter', 'defaults' => [ 'controller' => UtilisateurController::class, 'action' => 'export', 'action' => 'exporter', ], ], ], 'rechercher' => [ 'type' => Segment::class, 'options' => [ 'route' => '/rechercher[/:service-name]', 'route' => '/rechercher', 'defaults' => [ 'controller' => UtilisateurController::class, 'action' => 'rechercher', ], ], ], 'rechercher-utilisateur' => [ 'type' => Literal::class, 'options' => [ 'route' => '/rechercher-utilisateur', 'defaults' => [ 'controller' => UtilisateurController::class, 'action' => 'rechercher-utilisateur', ], ], ], 'add-role' => [ 'type' => Segment::class, 'options' => [ Loading @@ -182,23 +149,23 @@ return [ ], ], ], 'changer-status' => [ 'changer-statut' => [ 'type' => Segment::class, 'options' => [ 'route' => '/changer-status/:utilisateur', 'route' => '/changer-statut/:utilisateur', 'defaults' => [ 'controller' => UtilisateurController::class, 'action' => 'changer-status', 'action' => 'changer-statut', ], ], ], 'effacer' => [ 'supprimer' => [ 'type' => Segment::class, 'options' => [ 'route' => '/effacer/:utilisateur', 'route' => '/supprimer/:utilisateur', 'defaults' => [ 'controller' => UtilisateurController::class, 'action' => 'effacer', 'action' => 'supprimer', ], ], ], Loading @@ -213,16 +180,16 @@ return [ RoleService::class => RoleServiceFactory::class, ], ], 'form_elements' => [ 'factories' => [ UserForm::class => UserFormFactory::class, 'invokables' => [ UserRechercheForm::class => UserRechercheForm::class, ], ], 'hydrators' => [ 'factories' => [ UserHydrator::class => UserHydratorFactory::class, UserForm::class => UserFormFactory::class, ], ], 'controllers' => [ 'factories' => [ UtilisateurController::class => UtilisateurControllerFactory::class, Loading
config/unicaen-utilisateur.global.php.dist +82 −13 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
data/sql/schema_oracle.sql 0 → 100644 +78 −0 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
data/sql/schema_postgresql.sql 0 → 100644 +74 −0 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