Loading CHANGELOG.md +23 −2 Original line number Diff line number Diff line # Version 6.3.0 01/04/2025 * Possibilité de restreindre l'affichage des indicateurs en fonction de rôles /!\ la colonne `roles_autorises` dans la table `unicaen_indicateur_indicateur` a évolué /!\ ```sql alter table unicaen_indicateur_indicateur add roles_autorises varchar(2048) default 'Tous les rôles' not null; ``` /!\ Nouveau privilèges pour l'affichage "forcé" des indicateurs ```sql INSERT INTO unicaen_privilege_privilege(CATEGORIE_ID, CODE, LIBELLE, ORDRE) WITH d(code, lib, ordre) AS ( SELECT 'afficher_indicateur_tous', 'Afficher tous les indicateurs', 15 UNION ) SELECT cp.id, d.code, d.lib, d.ordre FROM d JOIN unicaen_privilege_categorie cp ON cp.CODE = 'indicateur'; ``` # Version 6.2.1 21/01/2025 * Déclaration des périmètres en configuration Loading documentation/01_table.sql +2 −1 Original line number Diff line number Diff line Loading @@ -30,7 +30,8 @@ create table unicaen_indicateur_indicateur categorie_id integer constraint uii_unicaen_indicateur_categorie_id_fk references unicaen_indicateur_categorie, perimetre varchar(256) perimetre varchar(256), roles_autorises varchar(2048) ); create unique index indicateur_id_uindex on unicaen_indicateur_indicateur (id); Loading documentation/02_privileges.sql +5 −4 Original line number Diff line number Diff line Loading @@ -2,10 +2,11 @@ INSERT INTO unicaen_privilege_categorie (code, libelle, ordre, namespace) VALUES ('indicateur', 'Gestions des indicateurs', 800, 'UnicaenIndicateur\Provider\Privilege'); INSERT INTO unicaen_privilege_privilege(CATEGORIE_ID, CODE, LIBELLE, ORDRE) WITH d(code, lib, ordre) AS ( SELECT 'afficher_indicateur', 'Afficher un indicateur', 1 UNION SELECT 'editer_indicateur', 'Éditer un indicateur', 2 UNION SELECT 'detruire_indicateur', 'Effacer un indicateur', 3 UNION SELECT 'indicateur_index', 'Accéder à l''index', 10 UNION SELECT 'afficher_indicateur', 'Afficher un indicateur', 10 UNION SELECT 'afficher_indicateur_tous', 'Afficher tous les indicateurs', 15 UNION SELECT 'editer_indicateur', 'Éditer un indicateur', 20 UNION SELECT 'detruire_indicateur', 'Effacer un indicateur', 30 UNION SELECT 'indicateur_index', 'Accéder à l''index', 1 UNION SELECT 'indicateur_mes_indicateurs', 'Affichage du menu - Mes Indicateurs -', 100 ) SELECT cp.id, d.code, d.lib, d.ordre Loading src/UnicaenIndicateur/Controller/IndicateurController.php +1 −0 Original line number Diff line number Diff line Loading @@ -57,6 +57,7 @@ class IndicateurController extends AbstractActionController { 'indicateursByCategorie' => $indicateursByCategorie, 'indicateurs' => $indicateurs, 'abonnements' => $array, 'role' => $this->getUserService()->getConnectedRole(), ]); } Loading src/UnicaenIndicateur/Entity/Db/Indicateur.php +24 −0 Original line number Diff line number Diff line Loading @@ -5,6 +5,9 @@ namespace UnicaenIndicateur\Entity\Db; use DateTime; use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\Collection; use UnicaenIndicateur\Service\Perimetre\PerimetreServiceInterface; use UnicaenParametre\Service\Parametre\ParametreService; use UnicaenUtilisateur\Entity\Db\RoleInterface; class Indicateur { Loading @@ -29,6 +32,9 @@ class Indicateur { private ?int $nbElements = null; private ?string $perimetre = null; private ?string $rolesAutorises = null; const TOUS_LES_ROLES = "Tous les rôles"; public function __construct() { Loading Loading @@ -153,6 +159,24 @@ class Indicateur { $this->perimetre = $perimetre; } /** @return string[] */ public function getRolesAutorises(): array { if ($this->rolesAutorises === null) return [Indicateur::TOUS_LES_ROLES]; return explode(PerimetreServiceInterface::PERIMETRE_SEPARATOR, $this->rolesAutorises); } public function setRolesAutorises(?string $rolesAutorises): void { $this->rolesAutorises = $rolesAutorises; } public function isAutorise(?RoleInterface $role): bool { $listing = $this->getRolesAutorises(); if (in_array(self::TOUS_LES_ROLES, $listing)) return true; return in_array($role->getRoleId(), $listing); } /** Abonnements **************************************************************** */ Loading Loading
CHANGELOG.md +23 −2 Original line number Diff line number Diff line # Version 6.3.0 01/04/2025 * Possibilité de restreindre l'affichage des indicateurs en fonction de rôles /!\ la colonne `roles_autorises` dans la table `unicaen_indicateur_indicateur` a évolué /!\ ```sql alter table unicaen_indicateur_indicateur add roles_autorises varchar(2048) default 'Tous les rôles' not null; ``` /!\ Nouveau privilèges pour l'affichage "forcé" des indicateurs ```sql INSERT INTO unicaen_privilege_privilege(CATEGORIE_ID, CODE, LIBELLE, ORDRE) WITH d(code, lib, ordre) AS ( SELECT 'afficher_indicateur_tous', 'Afficher tous les indicateurs', 15 UNION ) SELECT cp.id, d.code, d.lib, d.ordre FROM d JOIN unicaen_privilege_categorie cp ON cp.CODE = 'indicateur'; ``` # Version 6.2.1 21/01/2025 * Déclaration des périmètres en configuration Loading
documentation/01_table.sql +2 −1 Original line number Diff line number Diff line Loading @@ -30,7 +30,8 @@ create table unicaen_indicateur_indicateur categorie_id integer constraint uii_unicaen_indicateur_categorie_id_fk references unicaen_indicateur_categorie, perimetre varchar(256) perimetre varchar(256), roles_autorises varchar(2048) ); create unique index indicateur_id_uindex on unicaen_indicateur_indicateur (id); Loading
documentation/02_privileges.sql +5 −4 Original line number Diff line number Diff line Loading @@ -2,10 +2,11 @@ INSERT INTO unicaen_privilege_categorie (code, libelle, ordre, namespace) VALUES ('indicateur', 'Gestions des indicateurs', 800, 'UnicaenIndicateur\Provider\Privilege'); INSERT INTO unicaen_privilege_privilege(CATEGORIE_ID, CODE, LIBELLE, ORDRE) WITH d(code, lib, ordre) AS ( SELECT 'afficher_indicateur', 'Afficher un indicateur', 1 UNION SELECT 'editer_indicateur', 'Éditer un indicateur', 2 UNION SELECT 'detruire_indicateur', 'Effacer un indicateur', 3 UNION SELECT 'indicateur_index', 'Accéder à l''index', 10 UNION SELECT 'afficher_indicateur', 'Afficher un indicateur', 10 UNION SELECT 'afficher_indicateur_tous', 'Afficher tous les indicateurs', 15 UNION SELECT 'editer_indicateur', 'Éditer un indicateur', 20 UNION SELECT 'detruire_indicateur', 'Effacer un indicateur', 30 UNION SELECT 'indicateur_index', 'Accéder à l''index', 1 UNION SELECT 'indicateur_mes_indicateurs', 'Affichage du menu - Mes Indicateurs -', 100 ) SELECT cp.id, d.code, d.lib, d.ordre Loading
src/UnicaenIndicateur/Controller/IndicateurController.php +1 −0 Original line number Diff line number Diff line Loading @@ -57,6 +57,7 @@ class IndicateurController extends AbstractActionController { 'indicateursByCategorie' => $indicateursByCategorie, 'indicateurs' => $indicateurs, 'abonnements' => $array, 'role' => $this->getUserService()->getConnectedRole(), ]); } Loading
src/UnicaenIndicateur/Entity/Db/Indicateur.php +24 −0 Original line number Diff line number Diff line Loading @@ -5,6 +5,9 @@ namespace UnicaenIndicateur\Entity\Db; use DateTime; use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\Collection; use UnicaenIndicateur\Service\Perimetre\PerimetreServiceInterface; use UnicaenParametre\Service\Parametre\ParametreService; use UnicaenUtilisateur\Entity\Db\RoleInterface; class Indicateur { Loading @@ -29,6 +32,9 @@ class Indicateur { private ?int $nbElements = null; private ?string $perimetre = null; private ?string $rolesAutorises = null; const TOUS_LES_ROLES = "Tous les rôles"; public function __construct() { Loading Loading @@ -153,6 +159,24 @@ class Indicateur { $this->perimetre = $perimetre; } /** @return string[] */ public function getRolesAutorises(): array { if ($this->rolesAutorises === null) return [Indicateur::TOUS_LES_ROLES]; return explode(PerimetreServiceInterface::PERIMETRE_SEPARATOR, $this->rolesAutorises); } public function setRolesAutorises(?string $rolesAutorises): void { $this->rolesAutorises = $rolesAutorises; } public function isAutorise(?RoleInterface $role): bool { $listing = $this->getRolesAutorises(); if (in_array(self::TOUS_LES_ROLES, $listing)) return true; return in_array($role->getRoleId(), $listing); } /** Abonnements **************************************************************** */ Loading