Loading composer.lock +20 −20 Original line number Diff line number Diff line Loading @@ -2609,16 +2609,16 @@ }, { "name": "laminas/laminas-i18n", "version": "2.21.0", "version": "2.22.0", "source": { "type": "git", "url": "https://github.com/laminas/laminas-i18n.git", "reference": "fbd2d0373aaced4769cba2bf3d1425d55f68abb1" "reference": "fc13d1314941bd9acda3861883cd9139d747f98f" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/laminas/laminas-i18n/zipball/fbd2d0373aaced4769cba2bf3d1425d55f68abb1", "reference": "fbd2d0373aaced4769cba2bf3d1425d55f68abb1", "url": "https://api.github.com/repos/laminas/laminas-i18n/zipball/fc13d1314941bd9acda3861883cd9139d747f98f", "reference": "fc13d1314941bd9acda3861883cd9139d747f98f", "shasum": "" }, "require": { Loading @@ -2636,7 +2636,7 @@ "laminas/laminas-cache": "^3.8", "laminas/laminas-cache-storage-adapter-memory": "^2.2.0", "laminas/laminas-cache-storage-deprecated-factory": "^1.0.1", "laminas/laminas-coding-standard": "~2.4.0", "laminas/laminas-coding-standard": "~2.5.0", "laminas/laminas-config": "^3.8.0", "laminas/laminas-eventmanager": "^3.7", "laminas/laminas-filter": "^2.28.1", Loading Loading @@ -2691,7 +2691,7 @@ "type": "community_bridge" } ], "time": "2022-12-02T17:15:52+00:00" "time": "2023-03-12T01:03:50+00:00" }, { "name": "laminas/laminas-i18n-resources", Loading Loading @@ -6590,11 +6590,11 @@ }, { "name": "unicaen/app", "version": "6.0.3", "version": "6.0.5", "source": { "type": "git", "url": "https://git.unicaen.fr/lib/unicaen/app.git", "reference": "9563e774c02746b7267d0216eea957562bddd7c5" "reference": "a85de98e91ea41bf97eb0fdb9359f4942e9fe96d" }, "require": { "beberlei/assert": "^3.3", Loading Loading @@ -6650,15 +6650,15 @@ ] }, "description": "Module de base des applications unicaen", "time": "2023-02-28T14:01:30+00:00" "time": "2023-03-21T14:44:06+00:00" }, { "name": "unicaen/authentification", "version": "6.0.1", "version": "6.0.3", "source": { "type": "git", "url": "https://git.unicaen.fr/lib/unicaen/authentification.git", "reference": "6c2e56cd85b465f553e9cffbb59132de6303995f" "reference": "8fecd370043a0364a54f867abed4839b476aa12f" }, "require": { "jasig/phpcas": "1.5.*", Loading @@ -6680,7 +6680,7 @@ ] }, "description": "Module d'authentification pour les applications Unicaen - Version Laminas", "time": "2023-02-21T16:08:28+00:00" "time": "2023-03-21T08:19:01+00:00" }, { "name": "unicaen/bjy-authorize", Loading Loading @@ -6838,7 +6838,7 @@ "source": { "type": "git", "url": "https://git.unicaen.fr/lib/unicaen/mail.git", "reference": "1002f28be6a57377a5f924bd277d3059cc29ba52" "reference": "bee0f5d6ad8376a12f0167ac5baea9979d39530a" }, "require": { "laminas/laminas-dependency-plugin": "^2.2", Loading @@ -6853,15 +6853,15 @@ ] }, "description": "Module d'envoi de mail", "time": "2023-03-20T08:58:49+00:00" "time": "2023-03-20T11:19:54+00:00" }, { "name": "unicaen/privilege", "version": "6.0.0", "version": "6.0.2", "source": { "type": "git", "url": "https://git.unicaen.fr/lib/unicaen/privilege.git", "reference": "0176388bd7e1b2aad0f9a30e633195c3b03e5396" "reference": "3e2edb37b46f010cab3974290a949583dc8328aa" }, "require": { "laminas/laminas-dependency-plugin": "^2.1", Loading @@ -6880,15 +6880,15 @@ ] }, "description": "Module reprenant la gestion des privileges - Version laminas", "time": "2023-03-16T14:13:55+00:00" "time": "2023-03-21T13:25:18+00:00" }, { "name": "unicaen/utilisateur", "version": "6.0.3", "version": "6.0.5", "source": { "type": "git", "url": "https://git.unicaen.fr/lib/unicaen/utilisateur.git", "reference": "8163829d052a30aaa536328fce46638caca67b33" "reference": "bc91104943b290e8c39f805b61c02e10b73d2b0e" }, "require": { "laminas/laminas-dependency-plugin": "^2.1", Loading @@ -6912,7 +6912,7 @@ ] }, "description": "Module reprenant la gestion des utilisateurs, privileges et roles - Version laminas", "time": "2023-03-20T08:51:39+00:00" "time": "2023-03-21T13:45:19+00:00" }, { "name": "unicaen/zfc-user", Loading docker/db/1-schema.sqldeleted 100644 → 0 +0 −66 Original line number Diff line number Diff line 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, last_role_id SMALLINT ) ; 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, accessible_exterieur BOOLEAN NOT NULL DEFAULT true, 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); docker/db/2-data.sqldeleted 100644 → 0 +0 −30 Original line number Diff line number Diff line -- 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 Crite', '$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'; module/Application/Module.php +11 −1 Original line number Diff line number Diff line Loading @@ -5,7 +5,10 @@ namespace Application; use Laminas\Mvc\ModuleRouteListener; use Laminas\Mvc\MvcEvent; use Laminas\Http\Request as HttpRequest; use Laminas\Config\Factory as ConfigFactory; use Laminas\Session\SessionManager; use Laminas\Stdlib\ArrayUtils; use Laminas\Stdlib\Glob; class Module { Loading Loading @@ -35,7 +38,14 @@ class Module public function getConfig() { return include __DIR__ . '/config/module.config.php'; $configInit = [ __DIR__ . '/config/module.config.php' ]; $configFiles = ArrayUtils::merge( $configInit, Glob::glob(__DIR__ . '/config/merged/{,*.}{config}.php', Glob::GLOB_BRACE) ); return ConfigFactory::fromFiles($configFiles); } public function getAutoloaderConfig() Loading module/Application/config/merged/example.php 0 → 100644 +36 −0 Original line number Diff line number Diff line <?php namespace Application; use UnicaenPrivilege\Guard\PrivilegeController; return [ 'bjyauthorize' => [ 'guards' => [ PrivilegeController::class => [ ], ], ], 'router' => [ 'routes' => [ ], ], 'service_manager' => [ 'factories' => [], ], 'controllers' => [ 'factories' => [], ], 'form_elements' => [ 'factories' => [], ], 'hydrators' => [ 'factories' => [], ], 'view_helpers' => [ 'invokables' => [], ], ]; No newline at end of file Loading
composer.lock +20 −20 Original line number Diff line number Diff line Loading @@ -2609,16 +2609,16 @@ }, { "name": "laminas/laminas-i18n", "version": "2.21.0", "version": "2.22.0", "source": { "type": "git", "url": "https://github.com/laminas/laminas-i18n.git", "reference": "fbd2d0373aaced4769cba2bf3d1425d55f68abb1" "reference": "fc13d1314941bd9acda3861883cd9139d747f98f" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/laminas/laminas-i18n/zipball/fbd2d0373aaced4769cba2bf3d1425d55f68abb1", "reference": "fbd2d0373aaced4769cba2bf3d1425d55f68abb1", "url": "https://api.github.com/repos/laminas/laminas-i18n/zipball/fc13d1314941bd9acda3861883cd9139d747f98f", "reference": "fc13d1314941bd9acda3861883cd9139d747f98f", "shasum": "" }, "require": { Loading @@ -2636,7 +2636,7 @@ "laminas/laminas-cache": "^3.8", "laminas/laminas-cache-storage-adapter-memory": "^2.2.0", "laminas/laminas-cache-storage-deprecated-factory": "^1.0.1", "laminas/laminas-coding-standard": "~2.4.0", "laminas/laminas-coding-standard": "~2.5.0", "laminas/laminas-config": "^3.8.0", "laminas/laminas-eventmanager": "^3.7", "laminas/laminas-filter": "^2.28.1", Loading Loading @@ -2691,7 +2691,7 @@ "type": "community_bridge" } ], "time": "2022-12-02T17:15:52+00:00" "time": "2023-03-12T01:03:50+00:00" }, { "name": "laminas/laminas-i18n-resources", Loading Loading @@ -6590,11 +6590,11 @@ }, { "name": "unicaen/app", "version": "6.0.3", "version": "6.0.5", "source": { "type": "git", "url": "https://git.unicaen.fr/lib/unicaen/app.git", "reference": "9563e774c02746b7267d0216eea957562bddd7c5" "reference": "a85de98e91ea41bf97eb0fdb9359f4942e9fe96d" }, "require": { "beberlei/assert": "^3.3", Loading Loading @@ -6650,15 +6650,15 @@ ] }, "description": "Module de base des applications unicaen", "time": "2023-02-28T14:01:30+00:00" "time": "2023-03-21T14:44:06+00:00" }, { "name": "unicaen/authentification", "version": "6.0.1", "version": "6.0.3", "source": { "type": "git", "url": "https://git.unicaen.fr/lib/unicaen/authentification.git", "reference": "6c2e56cd85b465f553e9cffbb59132de6303995f" "reference": "8fecd370043a0364a54f867abed4839b476aa12f" }, "require": { "jasig/phpcas": "1.5.*", Loading @@ -6680,7 +6680,7 @@ ] }, "description": "Module d'authentification pour les applications Unicaen - Version Laminas", "time": "2023-02-21T16:08:28+00:00" "time": "2023-03-21T08:19:01+00:00" }, { "name": "unicaen/bjy-authorize", Loading Loading @@ -6838,7 +6838,7 @@ "source": { "type": "git", "url": "https://git.unicaen.fr/lib/unicaen/mail.git", "reference": "1002f28be6a57377a5f924bd277d3059cc29ba52" "reference": "bee0f5d6ad8376a12f0167ac5baea9979d39530a" }, "require": { "laminas/laminas-dependency-plugin": "^2.2", Loading @@ -6853,15 +6853,15 @@ ] }, "description": "Module d'envoi de mail", "time": "2023-03-20T08:58:49+00:00" "time": "2023-03-20T11:19:54+00:00" }, { "name": "unicaen/privilege", "version": "6.0.0", "version": "6.0.2", "source": { "type": "git", "url": "https://git.unicaen.fr/lib/unicaen/privilege.git", "reference": "0176388bd7e1b2aad0f9a30e633195c3b03e5396" "reference": "3e2edb37b46f010cab3974290a949583dc8328aa" }, "require": { "laminas/laminas-dependency-plugin": "^2.1", Loading @@ -6880,15 +6880,15 @@ ] }, "description": "Module reprenant la gestion des privileges - Version laminas", "time": "2023-03-16T14:13:55+00:00" "time": "2023-03-21T13:25:18+00:00" }, { "name": "unicaen/utilisateur", "version": "6.0.3", "version": "6.0.5", "source": { "type": "git", "url": "https://git.unicaen.fr/lib/unicaen/utilisateur.git", "reference": "8163829d052a30aaa536328fce46638caca67b33" "reference": "bc91104943b290e8c39f805b61c02e10b73d2b0e" }, "require": { "laminas/laminas-dependency-plugin": "^2.1", Loading @@ -6912,7 +6912,7 @@ ] }, "description": "Module reprenant la gestion des utilisateurs, privileges et roles - Version laminas", "time": "2023-03-20T08:51:39+00:00" "time": "2023-03-21T13:45:19+00:00" }, { "name": "unicaen/zfc-user", Loading
docker/db/1-schema.sqldeleted 100644 → 0 +0 −66 Original line number Diff line number Diff line 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, last_role_id SMALLINT ) ; 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, accessible_exterieur BOOLEAN NOT NULL DEFAULT true, 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);
docker/db/2-data.sqldeleted 100644 → 0 +0 −30 Original line number Diff line number Diff line -- 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 Crite', '$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';
module/Application/Module.php +11 −1 Original line number Diff line number Diff line Loading @@ -5,7 +5,10 @@ namespace Application; use Laminas\Mvc\ModuleRouteListener; use Laminas\Mvc\MvcEvent; use Laminas\Http\Request as HttpRequest; use Laminas\Config\Factory as ConfigFactory; use Laminas\Session\SessionManager; use Laminas\Stdlib\ArrayUtils; use Laminas\Stdlib\Glob; class Module { Loading Loading @@ -35,7 +38,14 @@ class Module public function getConfig() { return include __DIR__ . '/config/module.config.php'; $configInit = [ __DIR__ . '/config/module.config.php' ]; $configFiles = ArrayUtils::merge( $configInit, Glob::glob(__DIR__ . '/config/merged/{,*.}{config}.php', Glob::GLOB_BRACE) ); return ConfigFactory::fromFiles($configFiles); } public function getAutoloaderConfig() Loading
module/Application/config/merged/example.php 0 → 100644 +36 −0 Original line number Diff line number Diff line <?php namespace Application; use UnicaenPrivilege\Guard\PrivilegeController; return [ 'bjyauthorize' => [ 'guards' => [ PrivilegeController::class => [ ], ], ], 'router' => [ 'routes' => [ ], ], 'service_manager' => [ 'factories' => [], ], 'controllers' => [ 'factories' => [], ], 'form_elements' => [ 'factories' => [], ], 'hydrators' => [ 'factories' => [], ], 'view_helpers' => [ 'invokables' => [], ], ]; No newline at end of file