Loading config/merged/role.config.php +11 −0 Changes for config/merged/role.config.php: 11 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -77,6 +77,9 @@ return [ 'controller' => RoleController::class, 'action' => 'exporter', ], 'constraints' => [ 'role' => '\d+', ], ], ], 'ajouter' => [ Loading @@ -97,6 +100,9 @@ return [ 'controller' => RoleController::class, 'action' => 'modifier', ], 'constraints' => [ 'role' => '\d+', ], ], ], 'supprimer' => [ Loading @@ -107,6 +113,9 @@ return [ 'controller' => RoleController::class, 'action' => 'supprimer', ], 'constraints' => [ 'role' => '\d+', ], ], ], ], Loading @@ -122,11 +131,13 @@ return [ RoleService::class => RoleServiceFactory::class, ], ], 'controllers' => [ 'factories' => [ RoleController::class => RoleControllerFactory::class, ], ], 'form_elements' => [ 'factories' => [ RoleForm::class => RoleFormFactory::class, Loading config/merged/utilisateur.config.php +29 −4 Changes for config/merged/utilisateur.config.php: 29 added lines, 4 removed lines. Original line number Diff line number Diff line <?php use UnicaenPrivilege\Guard\PrivilegeController; use UnicaenUtilisateur\Controller\UtilisateurController; use UnicaenUtilisateur\Controller\UtilisateurControllerFactory; use UnicaenUtilisateur\Form\User\UserForm; Loading @@ -12,7 +13,8 @@ use UnicaenUtilisateur\Service\Role\RoleService; use UnicaenUtilisateur\Service\Role\RoleServiceFactory; use UnicaenUtilisateur\Service\User\UserService; use UnicaenUtilisateur\Service\User\UserServiceFactory; use UnicaenPrivilege\Guard\PrivilegeController; use UnicaenUtilisateur\View\Helper\UserRole; use UnicaenUtilisateur\View\Helper\UserRoleFactory; use Zend\Router\Http\Literal; use Zend\Router\Http\Segment; Loading Loading @@ -137,6 +139,10 @@ return [ 'controller' => UtilisateurController::class, 'action' => 'add-role', ], 'constraints' => [ 'utilisateur' => '\d+', 'role' => '\d+', ], ], ], 'remove-role' => [ Loading @@ -147,6 +153,10 @@ return [ 'controller' => UtilisateurController::class, 'action' => 'remove-role', ], 'constraints' => [ 'utilisateur' => '\d+', 'role' => '\d+', ], ], ], 'changer-statut' => [ Loading @@ -157,6 +167,9 @@ return [ 'controller' => UtilisateurController::class, 'action' => 'changer-statut', ], 'constraints' => [ 'utilisateur' => '\d+', ], ], ], 'supprimer' => [ Loading @@ -167,6 +180,9 @@ return [ 'controller' => UtilisateurController::class, 'action' => 'supprimer', ], 'constraints' => [ 'utilisateur' => '\d+', ], ], ], ], Loading @@ -181,6 +197,12 @@ return [ ], ], 'controllers' => [ 'factories' => [ UtilisateurController::class => UtilisateurControllerFactory::class, ] ], 'form_elements' => [ 'invokables' => [ UserRechercheForm::class => UserRechercheForm::class, Loading @@ -190,9 +212,12 @@ return [ ], ], 'controllers' => [ 'view_helpers' => [ 'aliases' => [ 'userRole' => UserRole::class, ], 'factories' => [ UtilisateurController::class => UtilisateurControllerFactory::class, ] UserRole::class => UserRoleFactory::class, ], ], ]; src/UnicaenUtilisateur/Controller/UtilisateurController.php +4 −5 Changes for src/UnicaenUtilisateur/Controller/UtilisateurController.php: 4 added lines, 5 removed lines. Original line number Diff line number Diff line Loading @@ -95,7 +95,6 @@ class UtilisateurController extends AbstractActionController } else { $this->flashMessenger()->addErrorMessage("La source \"$source\" n'est pas déclarée dans la configuration."); return $this->redirect()->toRoute('utilisateur', [], [], true); } } Loading @@ -104,13 +103,13 @@ class UtilisateurController extends AbstractActionController $utilisateurId = $this->params()->fromQuery("id"); $utilisateur = null; $rolesAttributes = []; $rolesAttribues = []; $rolesDisponibles = []; if ($utilisateurId !== null AND $utilisateurId !== "") { $utilisateur = $this->userService->find($utilisateurId); if($utilisateur instanceof UserInterface) { $rolesAttributes = $utilisateur->getRoles()->toArray(); $rolesDisponibles = array_diff($roles, $rolesAttributes); $rolesAttribues = $utilisateur->getRoles()->toArray(); $rolesDisponibles = array_diff($roles, $rolesAttribues); } } Loading @@ -120,7 +119,7 @@ class UtilisateurController extends AbstractActionController 'form' => $form, 'utilisateur' => $utilisateur, 'roles' => $roles, 'rolesAttributes' => $rolesAttributes, 'rolesAttribues' => $rolesAttribues, 'rolesDisponibles' => $rolesDisponibles, 'rolesAutomatiques' => ($this->identityProvider !== null) ? $this->identityProvider->computeRolesAutomatiques($utilisateur) : [], ]); Loading src/UnicaenUtilisateur/Entity/Db/AbstractUser.php +18 −0 Changes for src/UnicaenUtilisateur/Entity/Db/AbstractUser.php: 18 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -266,6 +266,24 @@ abstract class AbstractUser implements UserInterface, ProviderInterface, Recherc return $this->roles; } /** * @param RoleInterface $role * @return UserRoleInterface|null */ public function getFullRole(RoleInterface $role) { if(!$this->hasRole($role)) { return null; } $roles = $this->roles->filter(function ($r) use ($role) { /** @var UserRoleInterface $r */ return $r->getRole()->getRoleId() === $role->getRoleId(); }); return $roles->current(); } /** * Get roles of user * Loading src/UnicaenUtilisateur/Entity/Db/Mapping/UnicaenUtilisateur.Entity.Db.Role.dcm.xml +2 −1 Changes for src/UnicaenUtilisateur/Entity/Db/Mapping/UnicaenUtilisateur.Entity.Db.Role.dcm.xml: 2 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -13,7 +13,8 @@ </unique-constraints> <id name="id" type="integer" column="ID"> <generator strategy="IDENTITY"/> <generator strategy="AUTO"/> <sequence-generator sequence-name="UNICAEN_ROLE_ID_seq" allocation-size="1" initial-value="1"/> </id> <field name="roleId" type="string" column="ROLE_ID" length="64" nullable="false"/> Loading Loading
config/merged/role.config.php +11 −0 Changes for config/merged/role.config.php: 11 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -77,6 +77,9 @@ return [ 'controller' => RoleController::class, 'action' => 'exporter', ], 'constraints' => [ 'role' => '\d+', ], ], ], 'ajouter' => [ Loading @@ -97,6 +100,9 @@ return [ 'controller' => RoleController::class, 'action' => 'modifier', ], 'constraints' => [ 'role' => '\d+', ], ], ], 'supprimer' => [ Loading @@ -107,6 +113,9 @@ return [ 'controller' => RoleController::class, 'action' => 'supprimer', ], 'constraints' => [ 'role' => '\d+', ], ], ], ], Loading @@ -122,11 +131,13 @@ return [ RoleService::class => RoleServiceFactory::class, ], ], 'controllers' => [ 'factories' => [ RoleController::class => RoleControllerFactory::class, ], ], 'form_elements' => [ 'factories' => [ RoleForm::class => RoleFormFactory::class, Loading
config/merged/utilisateur.config.php +29 −4 Changes for config/merged/utilisateur.config.php: 29 added lines, 4 removed lines. Original line number Diff line number Diff line <?php use UnicaenPrivilege\Guard\PrivilegeController; use UnicaenUtilisateur\Controller\UtilisateurController; use UnicaenUtilisateur\Controller\UtilisateurControllerFactory; use UnicaenUtilisateur\Form\User\UserForm; Loading @@ -12,7 +13,8 @@ use UnicaenUtilisateur\Service\Role\RoleService; use UnicaenUtilisateur\Service\Role\RoleServiceFactory; use UnicaenUtilisateur\Service\User\UserService; use UnicaenUtilisateur\Service\User\UserServiceFactory; use UnicaenPrivilege\Guard\PrivilegeController; use UnicaenUtilisateur\View\Helper\UserRole; use UnicaenUtilisateur\View\Helper\UserRoleFactory; use Zend\Router\Http\Literal; use Zend\Router\Http\Segment; Loading Loading @@ -137,6 +139,10 @@ return [ 'controller' => UtilisateurController::class, 'action' => 'add-role', ], 'constraints' => [ 'utilisateur' => '\d+', 'role' => '\d+', ], ], ], 'remove-role' => [ Loading @@ -147,6 +153,10 @@ return [ 'controller' => UtilisateurController::class, 'action' => 'remove-role', ], 'constraints' => [ 'utilisateur' => '\d+', 'role' => '\d+', ], ], ], 'changer-statut' => [ Loading @@ -157,6 +167,9 @@ return [ 'controller' => UtilisateurController::class, 'action' => 'changer-statut', ], 'constraints' => [ 'utilisateur' => '\d+', ], ], ], 'supprimer' => [ Loading @@ -167,6 +180,9 @@ return [ 'controller' => UtilisateurController::class, 'action' => 'supprimer', ], 'constraints' => [ 'utilisateur' => '\d+', ], ], ], ], Loading @@ -181,6 +197,12 @@ return [ ], ], 'controllers' => [ 'factories' => [ UtilisateurController::class => UtilisateurControllerFactory::class, ] ], 'form_elements' => [ 'invokables' => [ UserRechercheForm::class => UserRechercheForm::class, Loading @@ -190,9 +212,12 @@ return [ ], ], 'controllers' => [ 'view_helpers' => [ 'aliases' => [ 'userRole' => UserRole::class, ], 'factories' => [ UtilisateurController::class => UtilisateurControllerFactory::class, ] UserRole::class => UserRoleFactory::class, ], ], ];
src/UnicaenUtilisateur/Controller/UtilisateurController.php +4 −5 Changes for src/UnicaenUtilisateur/Controller/UtilisateurController.php: 4 added lines, 5 removed lines. Original line number Diff line number Diff line Loading @@ -95,7 +95,6 @@ class UtilisateurController extends AbstractActionController } else { $this->flashMessenger()->addErrorMessage("La source \"$source\" n'est pas déclarée dans la configuration."); return $this->redirect()->toRoute('utilisateur', [], [], true); } } Loading @@ -104,13 +103,13 @@ class UtilisateurController extends AbstractActionController $utilisateurId = $this->params()->fromQuery("id"); $utilisateur = null; $rolesAttributes = []; $rolesAttribues = []; $rolesDisponibles = []; if ($utilisateurId !== null AND $utilisateurId !== "") { $utilisateur = $this->userService->find($utilisateurId); if($utilisateur instanceof UserInterface) { $rolesAttributes = $utilisateur->getRoles()->toArray(); $rolesDisponibles = array_diff($roles, $rolesAttributes); $rolesAttribues = $utilisateur->getRoles()->toArray(); $rolesDisponibles = array_diff($roles, $rolesAttribues); } } Loading @@ -120,7 +119,7 @@ class UtilisateurController extends AbstractActionController 'form' => $form, 'utilisateur' => $utilisateur, 'roles' => $roles, 'rolesAttributes' => $rolesAttributes, 'rolesAttribues' => $rolesAttribues, 'rolesDisponibles' => $rolesDisponibles, 'rolesAutomatiques' => ($this->identityProvider !== null) ? $this->identityProvider->computeRolesAutomatiques($utilisateur) : [], ]); Loading
src/UnicaenUtilisateur/Entity/Db/AbstractUser.php +18 −0 Changes for src/UnicaenUtilisateur/Entity/Db/AbstractUser.php: 18 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -266,6 +266,24 @@ abstract class AbstractUser implements UserInterface, ProviderInterface, Recherc return $this->roles; } /** * @param RoleInterface $role * @return UserRoleInterface|null */ public function getFullRole(RoleInterface $role) { if(!$this->hasRole($role)) { return null; } $roles = $this->roles->filter(function ($r) use ($role) { /** @var UserRoleInterface $r */ return $r->getRole()->getRoleId() === $role->getRoleId(); }); return $roles->current(); } /** * Get roles of user * Loading
src/UnicaenUtilisateur/Entity/Db/Mapping/UnicaenUtilisateur.Entity.Db.Role.dcm.xml +2 −1 Changes for src/UnicaenUtilisateur/Entity/Db/Mapping/UnicaenUtilisateur.Entity.Db.Role.dcm.xml: 2 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -13,7 +13,8 @@ </unique-constraints> <id name="id" type="integer" column="ID"> <generator strategy="IDENTITY"/> <generator strategy="AUTO"/> <sequence-generator sequence-name="UNICAEN_ROLE_ID_seq" allocation-size="1" initial-value="1"/> </id> <field name="roleId" type="string" column="ROLE_ID" length="64" nullable="false"/> Loading