Loading config/merged/role.config.php +13 −8 Changes for config/merged/role.config.php: 13 added lines, 8 removed lines. 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 @@ -63,13 +69,13 @@ return [ ], 'may_terminate' => true, 'child_routes' => [ 'listing' => [ 'exporter' => [ 'type' => Segment::class, 'options' => [ 'route' => '/lister/:role', 'route' => '/exporter/:role', 'defaults' => [ 'controller' => RoleController::class, 'action' => 'lister', 'action' => 'exporter', ], ], ], Loading Loading @@ -110,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 +4 −4 Changes for config/merged/utilisateur.config.php: 4 added lines, 4 removed lines. Original line number Diff line number Diff line Loading @@ -37,7 +37,7 @@ return [ 'index', 'rechercher', 'lister', 'export' 'exporter' ], 'privileges' => [ UtilisateurPrivileges::UTILISATEUR_AFFICHER, Loading Loading @@ -109,13 +109,13 @@ return [ ], ], ], 'export' => [ 'exporter' => [ 'type' => Literal::class, 'options' => [ 'route' => '/export', 'route' => '/exporter', 'defaults' => [ 'controller' => UtilisateurController::class, 'action' => 'export', 'action' => 'exporter', ], ], ], Loading src/UnicaenUtilisateur/Controller/RoleController.php +40 −48 Changes for src/UnicaenUtilisateur/Controller/RoleController.php: 40 added lines, 48 removed lines. Original line number Diff line number Diff line Loading @@ -31,12 +31,13 @@ class RoleController extends AbstractActionController { $roles = $this->roleService->findAll(); return new ViewModel([ 'title' => "Gestion des rôles", 'roles' => $roles, 'identityprovider' => $this->identityProvider, ]); } public function listingAction() public function exporterAction() { $role = $this->roleService->getRequestedRole($this); Loading @@ -54,7 +55,7 @@ class RoleController extends AbstractActionController { } $headers = [ 'Nom d\'utilisateur', 'Nom affiché', 'Adresse électronique']; $headers = [ 'Identifiant de connexion', 'Nom', 'Adresse email']; $records = []; foreach ($users as $user) { Loading @@ -73,87 +74,78 @@ class RoleController extends AbstractActionController { $CSV->setHeader($headers); $CSV->setData($records); $CSV->setFilename($filename); return $CSV; } public function ajouterAction() { $role = $this->roleService->getEntityInstance(); $form = $this->getRoleForm(); $form = $this->roleForm; $form->setAttribute('action', $this->url()->fromRoute('unicaen-role/ajouter', [], [], true)); $form->bind($role); /** @var Request $request */ $request = $this->getRequest(); if ($request->isPost()) { $data = $request->getPost(); if ($data = $this->params()->fromPost()) { $form->setData($data); if ($form->isValid()) { $this->getRoleService()->create($role); //return $this->redirect()->toRoute('unicaen-role', [], [], true); try { $this->roleService->create($role); $this->flashMessenger()->addSuccessMessage(sprintf("Rôle <strong>%s</strong> créé avec succès.", $role->getLibelle())); } catch (Exception $e) { $this->flashMessenger()->addErrorMessage(sprintf("Une erreur est survenu lors de la création du rôle <strong>%s</strong>.", $role->getLibelle())); } } } $vm = new ViewModel(); $vm->setTemplate('unicaen-utilisateur/default/default-form'); $vm->setVariables([ $view = new ViewModel(); $view->setTemplate('unicaen-utilisateur/default/form-role'); $view->setVariables([ 'title' => 'Ajout d\'un nouveau rôle', 'form' => $form, ]); return $vm; return $view; } public function modifierAction() { $role = $this->getRoleService()->getRequestedRole($this); $form = $this->getRoleForm(); $role = $this->roleService->getRequestedRole($this); $form = $this->roleForm; $form->setAttribute('action', $this->url()->fromRoute('unicaen-role/modifier', ['role' => $role->getId()], [], true)); $form->bind($role); $form->setOldLibelle($role->getLibelle()); $form->setOldRoleId($role->getRoleId()); /** @var Request $request */ $request = $this->getRequest(); if ($request->isPost()) { $data = $request->getPost(); if ($data = $this->params()->fromPost()) { $form->setData($data); if ($form->isValid()) { $this->getRoleService()->update($role); //return $this->redirect()->toRoute('unicaen-role', [], [], true); try { $this->roleService->update($role); $this->flashMessenger()->addSuccessMessage(sprintf("Rôle <strong>%s</strong> modifié avec succès.", $role->getLibelle())); } catch (Exception $e) { $this->flashMessenger()->addErrorMessage(sprintf("Une erreur est survenu lors de la modification du rôle <strong>%s</strong>.", $role->getLibelle())); } } } $vm = new ViewModel(); $vm->setTemplate('unicaen-utilisateur/default/default-form'); $vm->setVariables([ 'title' => 'Ajout d\'un nouveau rôle', $view = new ViewModel(); $view->setTemplate('unicaen-utilisateur/default/form-role'); $view->setVariables([ 'title' => "Modification du rôle", 'form' => $form, ]); return $vm; return $view; } public function supprimerAction() { $role = $this->getRoleService()->getRequestedRole($this); /** @var Request $request */ $request = $this->getRequest(); if ($request->isPost()) { $data = $request->getPost(); if ($data["reponse"] === "oui") $this->getRoleService()->delete($role); //return $this->redirect()->toRoute('unicaen-role', [], [], true); exit(); } $vm = new ViewModel(); if ($role !== null) { $vm->setTemplate('unicaen-utilisateur/default/confirmation'); $vm->setVariables([ 'title' => "Suppression du rôle " . $role->getLibelle(), 'text' => "La suppression est définitive êtes-vous sûr·e de vouloir continuer ?", 'action' => $this->url()->fromRoute('unicaen-role/supprimer', ["role" => $role->getId()], [], true), ]); try { $role = $this->roleService->getRequestedRole($this); // $this->roleService->supprimer($role); $this->flashMessenger()->addSuccessMessage(sprintf("Rôle <strong>%s</strong> supprimé avec succès.", $role->getLibelle())); } catch (Exception $e) { $this->flashMessenger()->addErrorMessage(sprintf("Une erreur est survenu lors de la suppression du rôle <strong>%s</strong>.", $role->getLibelle())); } return $vm; return compact('role'); } } No newline at end of file src/UnicaenUtilisateur/Controller/UtilisateurController.php +8 −8 Changes for src/UnicaenUtilisateur/Controller/UtilisateurController.php: 8 added lines, 8 removed lines. Original line number Diff line number Diff line Loading @@ -113,6 +113,7 @@ class UtilisateurController extends AbstractActionController // TODO recupérer le provider qui va bien ... return new ViewModel([ 'title' => "Gestion des utilisateurs", 'form' => $form, 'utilisateur' => $utilisateur, 'roles' => $roles, Loading Loading @@ -149,8 +150,7 @@ class UtilisateurController extends AbstractActionController public function addRoleAction() { $utilisateurId = $this->params()->fromRoute("utilisateur"); $utilisateur = $this->userService->find($utilisateurId); $utilisateur = $this->userService->getRequestedUser($this); $roleId = $this->params()->fromRoute("role"); $role = $this->roleService->find($roleId); Loading @@ -169,8 +169,7 @@ class UtilisateurController extends AbstractActionController public function removeRoleAction() { $utilisateurId = $this->params()->fromRoute("utilisateur"); $utilisateur = $this->userService->find($utilisateurId); $utilisateur = $this->userService->getRequestedUser($this); $roleId = $this->params()->fromRoute("role"); $role = $this->roleService->find($roleId); Loading @@ -190,7 +189,7 @@ class UtilisateurController extends AbstractActionController public function changerStatutAction() { try { $utilisateur = $this->userService->find($this->params()->fromRoute("utilisateur")); $utilisateur = $this->userService->getRequestedUser($this); $utilisateur = $this->userService->changeStatus($utilisateur); $this->flashMessenger()->addSuccessMessage(sprintf("Utilisateur <strong>%s</strong> %s avec succès.", Loading @@ -208,8 +207,7 @@ class UtilisateurController extends AbstractActionController public function supprimerAction() { try { /** @var IndividuCompte $compte */ $utilisateur = $this->userService->find($this->params()->fromRoute("utilisateur")); $utilisateur = $this->userService->getRequestedUser($this); $this->userService->supprimer($utilisateur); $this->flashMessenger()->addSuccessMessage(sprintf("Utilisateur <strong>%s</strong> supprimé avec succès.", $utilisateur->getDisplayName())); } catch (Exception $e) { Loading Loading @@ -268,11 +266,12 @@ class UtilisateurController extends AbstractActionController $users = $this->userService->findAll(); return new ViewModel([ 'title' => "Liste des utilisateurs", 'users' => $users, ]); } public function exportAction() public function exporterAction() { $users = $this->userService->findAll(); $headers = [ 'Identifiant de connexion', 'Nom', 'Activé', 'Rôle']; Loading Loading @@ -300,6 +299,7 @@ class UtilisateurController extends AbstractActionController $CSV->setHeader($headers); $CSV->setData($records); $CSV->setFilename($filename); return $CSV; } } No newline at end of file src/UnicaenUtilisateur/Form/Role/RoleForm.php +79 −104 Changes for src/UnicaenUtilisateur/Form/Role/RoleForm.php: 79 added lines, 104 removed lines. Original line number Diff line number Diff line Loading @@ -2,9 +2,14 @@ namespace UnicaenUtilisateur\Form\Role; use Application\Entity\Db\UtilisateurRole; use DoctrineModule\Form\Element\ObjectSelect; use DoctrineModule\Validator\UniqueObject; use UnicaenApp\Service\EntityManagerAwareTrait; use UnicaenUtilisateur\Entity\Db\UserInterface; use UnicaenUtilisateur\Service\Role\RoleServiceAwareTrait; use Zend\Form\Element\Button; use Zend\Form\Element\Checkbox; use Zend\Form\Element\Hidden; use Zend\Form\Element\Select; use Zend\Form\Element\Text; Loading @@ -19,99 +24,107 @@ class RoleForm extends Form public function init() { //libelle /** nécessaire pour le validator @see \DoctrineModule\Validator\UniqueObject */ $this->add([ 'name' => 'id', 'type' => Hidden::class, ]); $this->add([ 'type' => Text::class, 'name' => 'libelle', 'options' => [ 'label' => "Libelle* :", 'label' => "Libellé :", 'label_attributes' => [ 'class' => 'required', ], ], 'attributes' => [ 'id' => 'libelle', ], ]); $this->add([ 'name' => 'old-libelle', 'type' => Hidden::class, ]); //RoleId $this->add([ 'type' => Text::class, 'name' => 'role_id', 'name' => 'roleId', 'options' => [ 'label' => "Identifiant du rôle* :", 'label' => "Identifiant :", 'label_attributes' => [ 'class' => 'required', ], ], 'attributes' => [ 'id' => 'role_id', 'id' => 'role-id', ], ]); $this->add([ 'name' => 'old-roleid', 'type' => Hidden::class, ]); //parent $this->add([ 'type' => Select::class, 'name' => 'parent_id', 'type' => ObjectSelect::class, 'name' => 'parent', 'options' => [ 'label' => "Role parent :", 'empty_option' => "Aucun parent", 'value_options' => $this->roleService->getRolesAsOptions(), 'label' => "Rôle parent :", 'empty_option' => "Aucun rôle parent", 'object_manager' => $this->getEntityManager(), 'target_class' => $this->roleService->getEntityClass(), 'property' => 'libelle', 'find_method' => [ 'name' => 'findBy', 'params' => [ 'criteria' => [], 'orderBy' => ['libelle' => 'ASC'], ], ], 'disable_inarray_validator' => true, ], 'attributes' => [ 'id' => 'parent_id', 'id' => 'parent', ], ]); //is default $this->add([ 'type' => Select::class, 'name' => 'is_default', 'type' => Checkbox::class, 'name' => 'default', 'options' => [ 'label' => "Rôle par defaut ? *", 'value_options' => [ 'false' => 'Non', 'true' => 'Oui', ], ], 'attributes' => [ 'id' => 'is_default', 'label' => "rôle par défaut", 'use_hidden_element' => true, 'checked_value' => 1, 'unchecked_value' => 0, ], ]); //is auto $this->add([ 'type' => Select::class, 'name' => 'is_auto', 'type' => Checkbox::class, 'name' => 'auto', 'options' => [ 'label' => "Rôle automatique ? *", 'value_options' => [ 'false' => 'Non', 'true' => 'Oui', 'label' => "rôle automatique", 'use_hidden_element' => true, 'checked_value' => 1, 'unchecked_value' => 0, ], ], 'attributes' => [ 'id' => 'is_auto', ]); $this->add([ 'type' => Checkbox::class, 'name' => 'accessibleExterieur', 'options' => [ 'label' => "accès extérieur", 'use_hidden_element' => true, 'checked_value' => 1, 'unchecked_value' => 0, ], ]); //ldap filter $this->add([ 'type' => Text::class, 'name' => 'ldap_filter', 'name' => 'ldapFilter', 'options' => [ 'label' => "Filtre LDAP * :", 'label' => "Filtre LDAP :", ], 'attributes' => [ 'id' => 'ldap_filter', 'id' => 'ldap-filter', ], ]); //submit $this->add([ 'type' => Button::class, 'name' => 'bouton', Loading @@ -132,79 +145,41 @@ class RoleForm extends Form 'required' => true, 'validators' => [ [ 'name' => Callback::class, 'name' => UniqueObject::class, 'options' => [ 'object_manager' => $this->getEntityManager(), 'object_repository' => $this->roleService->getRepo(), 'use_context' => true, 'fields' => ['libelle'], 'messages' => [ Callback::INVALID_VALUE => "Ce libellé de rôle existe déjà", UniqueObject::ERROR_OBJECT_NOT_UNIQUE => "Ce libellé est déjà utilisé dans l'application.", ], 'callback' => function ($value, $context = []) { if($value == $context['old-libelle']) { return true; } else { return !$this->roleService->findByLibelle($value); } }, 'break_chain_on_failure' => true, ], ]], ] ], ], 'role_id' => [ 'roleId' => [ 'required' => true, 'validators' => [ [ 'name' => Callback::class, 'name' => UniqueObject::class, 'options' => [ 'object_manager' => $this->getEntityManager(), 'object_repository' => $this->roleService->getRepo(), 'use_context' => true, 'fields' => ['roleId'], 'messages' => [ Callback::INVALID_VALUE => "Cet identifiant de rôle existe déjà", UniqueObject::ERROR_OBJECT_NOT_UNIQUE => "Cet identifiant est déjà utilisé dans l'application.", ], 'callback' => function ($value, $context = []) { if($value == $context['old-roleid']) { return true; } else { return !$this->roleService->findByRoleId($value); } }, 'break_chain_on_failure' => true, ], ]], ] ], 'parent_id' => [ 'required' => false, ], 'is_default' => [ 'required' => true, ], 'is_auto' => [ 'required' => true, ], 'ldap_fitler' => [ 'required' => false, ], 'old-libelle' => [ 'required' => false, ], 'old-roleid' => [ 'parent' => [ 'required' => false, ], ])); } public function setOldLibelle($value) { $this->get('old-libelle')->setValue($value); } public function setOldRoleId($value) { $this->get('old-roleid')->setValue($value); } } No newline at end of file Loading
config/merged/role.config.php +13 −8 Changes for config/merged/role.config.php: 13 added lines, 8 removed lines. 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 @@ -63,13 +69,13 @@ return [ ], 'may_terminate' => true, 'child_routes' => [ 'listing' => [ 'exporter' => [ 'type' => Segment::class, 'options' => [ 'route' => '/lister/:role', 'route' => '/exporter/:role', 'defaults' => [ 'controller' => RoleController::class, 'action' => 'lister', 'action' => 'exporter', ], ], ], Loading Loading @@ -110,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 +4 −4 Changes for config/merged/utilisateur.config.php: 4 added lines, 4 removed lines. Original line number Diff line number Diff line Loading @@ -37,7 +37,7 @@ return [ 'index', 'rechercher', 'lister', 'export' 'exporter' ], 'privileges' => [ UtilisateurPrivileges::UTILISATEUR_AFFICHER, Loading Loading @@ -109,13 +109,13 @@ return [ ], ], ], 'export' => [ 'exporter' => [ 'type' => Literal::class, 'options' => [ 'route' => '/export', 'route' => '/exporter', 'defaults' => [ 'controller' => UtilisateurController::class, 'action' => 'export', 'action' => 'exporter', ], ], ], Loading
src/UnicaenUtilisateur/Controller/RoleController.php +40 −48 Changes for src/UnicaenUtilisateur/Controller/RoleController.php: 40 added lines, 48 removed lines. Original line number Diff line number Diff line Loading @@ -31,12 +31,13 @@ class RoleController extends AbstractActionController { $roles = $this->roleService->findAll(); return new ViewModel([ 'title' => "Gestion des rôles", 'roles' => $roles, 'identityprovider' => $this->identityProvider, ]); } public function listingAction() public function exporterAction() { $role = $this->roleService->getRequestedRole($this); Loading @@ -54,7 +55,7 @@ class RoleController extends AbstractActionController { } $headers = [ 'Nom d\'utilisateur', 'Nom affiché', 'Adresse électronique']; $headers = [ 'Identifiant de connexion', 'Nom', 'Adresse email']; $records = []; foreach ($users as $user) { Loading @@ -73,87 +74,78 @@ class RoleController extends AbstractActionController { $CSV->setHeader($headers); $CSV->setData($records); $CSV->setFilename($filename); return $CSV; } public function ajouterAction() { $role = $this->roleService->getEntityInstance(); $form = $this->getRoleForm(); $form = $this->roleForm; $form->setAttribute('action', $this->url()->fromRoute('unicaen-role/ajouter', [], [], true)); $form->bind($role); /** @var Request $request */ $request = $this->getRequest(); if ($request->isPost()) { $data = $request->getPost(); if ($data = $this->params()->fromPost()) { $form->setData($data); if ($form->isValid()) { $this->getRoleService()->create($role); //return $this->redirect()->toRoute('unicaen-role', [], [], true); try { $this->roleService->create($role); $this->flashMessenger()->addSuccessMessage(sprintf("Rôle <strong>%s</strong> créé avec succès.", $role->getLibelle())); } catch (Exception $e) { $this->flashMessenger()->addErrorMessage(sprintf("Une erreur est survenu lors de la création du rôle <strong>%s</strong>.", $role->getLibelle())); } } } $vm = new ViewModel(); $vm->setTemplate('unicaen-utilisateur/default/default-form'); $vm->setVariables([ $view = new ViewModel(); $view->setTemplate('unicaen-utilisateur/default/form-role'); $view->setVariables([ 'title' => 'Ajout d\'un nouveau rôle', 'form' => $form, ]); return $vm; return $view; } public function modifierAction() { $role = $this->getRoleService()->getRequestedRole($this); $form = $this->getRoleForm(); $role = $this->roleService->getRequestedRole($this); $form = $this->roleForm; $form->setAttribute('action', $this->url()->fromRoute('unicaen-role/modifier', ['role' => $role->getId()], [], true)); $form->bind($role); $form->setOldLibelle($role->getLibelle()); $form->setOldRoleId($role->getRoleId()); /** @var Request $request */ $request = $this->getRequest(); if ($request->isPost()) { $data = $request->getPost(); if ($data = $this->params()->fromPost()) { $form->setData($data); if ($form->isValid()) { $this->getRoleService()->update($role); //return $this->redirect()->toRoute('unicaen-role', [], [], true); try { $this->roleService->update($role); $this->flashMessenger()->addSuccessMessage(sprintf("Rôle <strong>%s</strong> modifié avec succès.", $role->getLibelle())); } catch (Exception $e) { $this->flashMessenger()->addErrorMessage(sprintf("Une erreur est survenu lors de la modification du rôle <strong>%s</strong>.", $role->getLibelle())); } } } $vm = new ViewModel(); $vm->setTemplate('unicaen-utilisateur/default/default-form'); $vm->setVariables([ 'title' => 'Ajout d\'un nouveau rôle', $view = new ViewModel(); $view->setTemplate('unicaen-utilisateur/default/form-role'); $view->setVariables([ 'title' => "Modification du rôle", 'form' => $form, ]); return $vm; return $view; } public function supprimerAction() { $role = $this->getRoleService()->getRequestedRole($this); /** @var Request $request */ $request = $this->getRequest(); if ($request->isPost()) { $data = $request->getPost(); if ($data["reponse"] === "oui") $this->getRoleService()->delete($role); //return $this->redirect()->toRoute('unicaen-role', [], [], true); exit(); } $vm = new ViewModel(); if ($role !== null) { $vm->setTemplate('unicaen-utilisateur/default/confirmation'); $vm->setVariables([ 'title' => "Suppression du rôle " . $role->getLibelle(), 'text' => "La suppression est définitive êtes-vous sûr·e de vouloir continuer ?", 'action' => $this->url()->fromRoute('unicaen-role/supprimer', ["role" => $role->getId()], [], true), ]); try { $role = $this->roleService->getRequestedRole($this); // $this->roleService->supprimer($role); $this->flashMessenger()->addSuccessMessage(sprintf("Rôle <strong>%s</strong> supprimé avec succès.", $role->getLibelle())); } catch (Exception $e) { $this->flashMessenger()->addErrorMessage(sprintf("Une erreur est survenu lors de la suppression du rôle <strong>%s</strong>.", $role->getLibelle())); } return $vm; return compact('role'); } } No newline at end of file
src/UnicaenUtilisateur/Controller/UtilisateurController.php +8 −8 Changes for src/UnicaenUtilisateur/Controller/UtilisateurController.php: 8 added lines, 8 removed lines. Original line number Diff line number Diff line Loading @@ -113,6 +113,7 @@ class UtilisateurController extends AbstractActionController // TODO recupérer le provider qui va bien ... return new ViewModel([ 'title' => "Gestion des utilisateurs", 'form' => $form, 'utilisateur' => $utilisateur, 'roles' => $roles, Loading Loading @@ -149,8 +150,7 @@ class UtilisateurController extends AbstractActionController public function addRoleAction() { $utilisateurId = $this->params()->fromRoute("utilisateur"); $utilisateur = $this->userService->find($utilisateurId); $utilisateur = $this->userService->getRequestedUser($this); $roleId = $this->params()->fromRoute("role"); $role = $this->roleService->find($roleId); Loading @@ -169,8 +169,7 @@ class UtilisateurController extends AbstractActionController public function removeRoleAction() { $utilisateurId = $this->params()->fromRoute("utilisateur"); $utilisateur = $this->userService->find($utilisateurId); $utilisateur = $this->userService->getRequestedUser($this); $roleId = $this->params()->fromRoute("role"); $role = $this->roleService->find($roleId); Loading @@ -190,7 +189,7 @@ class UtilisateurController extends AbstractActionController public function changerStatutAction() { try { $utilisateur = $this->userService->find($this->params()->fromRoute("utilisateur")); $utilisateur = $this->userService->getRequestedUser($this); $utilisateur = $this->userService->changeStatus($utilisateur); $this->flashMessenger()->addSuccessMessage(sprintf("Utilisateur <strong>%s</strong> %s avec succès.", Loading @@ -208,8 +207,7 @@ class UtilisateurController extends AbstractActionController public function supprimerAction() { try { /** @var IndividuCompte $compte */ $utilisateur = $this->userService->find($this->params()->fromRoute("utilisateur")); $utilisateur = $this->userService->getRequestedUser($this); $this->userService->supprimer($utilisateur); $this->flashMessenger()->addSuccessMessage(sprintf("Utilisateur <strong>%s</strong> supprimé avec succès.", $utilisateur->getDisplayName())); } catch (Exception $e) { Loading Loading @@ -268,11 +266,12 @@ class UtilisateurController extends AbstractActionController $users = $this->userService->findAll(); return new ViewModel([ 'title' => "Liste des utilisateurs", 'users' => $users, ]); } public function exportAction() public function exporterAction() { $users = $this->userService->findAll(); $headers = [ 'Identifiant de connexion', 'Nom', 'Activé', 'Rôle']; Loading Loading @@ -300,6 +299,7 @@ class UtilisateurController extends AbstractActionController $CSV->setHeader($headers); $CSV->setData($records); $CSV->setFilename($filename); return $CSV; } } No newline at end of file
src/UnicaenUtilisateur/Form/Role/RoleForm.php +79 −104 Changes for src/UnicaenUtilisateur/Form/Role/RoleForm.php: 79 added lines, 104 removed lines. Original line number Diff line number Diff line Loading @@ -2,9 +2,14 @@ namespace UnicaenUtilisateur\Form\Role; use Application\Entity\Db\UtilisateurRole; use DoctrineModule\Form\Element\ObjectSelect; use DoctrineModule\Validator\UniqueObject; use UnicaenApp\Service\EntityManagerAwareTrait; use UnicaenUtilisateur\Entity\Db\UserInterface; use UnicaenUtilisateur\Service\Role\RoleServiceAwareTrait; use Zend\Form\Element\Button; use Zend\Form\Element\Checkbox; use Zend\Form\Element\Hidden; use Zend\Form\Element\Select; use Zend\Form\Element\Text; Loading @@ -19,99 +24,107 @@ class RoleForm extends Form public function init() { //libelle /** nécessaire pour le validator @see \DoctrineModule\Validator\UniqueObject */ $this->add([ 'name' => 'id', 'type' => Hidden::class, ]); $this->add([ 'type' => Text::class, 'name' => 'libelle', 'options' => [ 'label' => "Libelle* :", 'label' => "Libellé :", 'label_attributes' => [ 'class' => 'required', ], ], 'attributes' => [ 'id' => 'libelle', ], ]); $this->add([ 'name' => 'old-libelle', 'type' => Hidden::class, ]); //RoleId $this->add([ 'type' => Text::class, 'name' => 'role_id', 'name' => 'roleId', 'options' => [ 'label' => "Identifiant du rôle* :", 'label' => "Identifiant :", 'label_attributes' => [ 'class' => 'required', ], ], 'attributes' => [ 'id' => 'role_id', 'id' => 'role-id', ], ]); $this->add([ 'name' => 'old-roleid', 'type' => Hidden::class, ]); //parent $this->add([ 'type' => Select::class, 'name' => 'parent_id', 'type' => ObjectSelect::class, 'name' => 'parent', 'options' => [ 'label' => "Role parent :", 'empty_option' => "Aucun parent", 'value_options' => $this->roleService->getRolesAsOptions(), 'label' => "Rôle parent :", 'empty_option' => "Aucun rôle parent", 'object_manager' => $this->getEntityManager(), 'target_class' => $this->roleService->getEntityClass(), 'property' => 'libelle', 'find_method' => [ 'name' => 'findBy', 'params' => [ 'criteria' => [], 'orderBy' => ['libelle' => 'ASC'], ], ], 'disable_inarray_validator' => true, ], 'attributes' => [ 'id' => 'parent_id', 'id' => 'parent', ], ]); //is default $this->add([ 'type' => Select::class, 'name' => 'is_default', 'type' => Checkbox::class, 'name' => 'default', 'options' => [ 'label' => "Rôle par defaut ? *", 'value_options' => [ 'false' => 'Non', 'true' => 'Oui', ], ], 'attributes' => [ 'id' => 'is_default', 'label' => "rôle par défaut", 'use_hidden_element' => true, 'checked_value' => 1, 'unchecked_value' => 0, ], ]); //is auto $this->add([ 'type' => Select::class, 'name' => 'is_auto', 'type' => Checkbox::class, 'name' => 'auto', 'options' => [ 'label' => "Rôle automatique ? *", 'value_options' => [ 'false' => 'Non', 'true' => 'Oui', 'label' => "rôle automatique", 'use_hidden_element' => true, 'checked_value' => 1, 'unchecked_value' => 0, ], ], 'attributes' => [ 'id' => 'is_auto', ]); $this->add([ 'type' => Checkbox::class, 'name' => 'accessibleExterieur', 'options' => [ 'label' => "accès extérieur", 'use_hidden_element' => true, 'checked_value' => 1, 'unchecked_value' => 0, ], ]); //ldap filter $this->add([ 'type' => Text::class, 'name' => 'ldap_filter', 'name' => 'ldapFilter', 'options' => [ 'label' => "Filtre LDAP * :", 'label' => "Filtre LDAP :", ], 'attributes' => [ 'id' => 'ldap_filter', 'id' => 'ldap-filter', ], ]); //submit $this->add([ 'type' => Button::class, 'name' => 'bouton', Loading @@ -132,79 +145,41 @@ class RoleForm extends Form 'required' => true, 'validators' => [ [ 'name' => Callback::class, 'name' => UniqueObject::class, 'options' => [ 'object_manager' => $this->getEntityManager(), 'object_repository' => $this->roleService->getRepo(), 'use_context' => true, 'fields' => ['libelle'], 'messages' => [ Callback::INVALID_VALUE => "Ce libellé de rôle existe déjà", UniqueObject::ERROR_OBJECT_NOT_UNIQUE => "Ce libellé est déjà utilisé dans l'application.", ], 'callback' => function ($value, $context = []) { if($value == $context['old-libelle']) { return true; } else { return !$this->roleService->findByLibelle($value); } }, 'break_chain_on_failure' => true, ], ]], ] ], ], 'role_id' => [ 'roleId' => [ 'required' => true, 'validators' => [ [ 'name' => Callback::class, 'name' => UniqueObject::class, 'options' => [ 'object_manager' => $this->getEntityManager(), 'object_repository' => $this->roleService->getRepo(), 'use_context' => true, 'fields' => ['roleId'], 'messages' => [ Callback::INVALID_VALUE => "Cet identifiant de rôle existe déjà", UniqueObject::ERROR_OBJECT_NOT_UNIQUE => "Cet identifiant est déjà utilisé dans l'application.", ], 'callback' => function ($value, $context = []) { if($value == $context['old-roleid']) { return true; } else { return !$this->roleService->findByRoleId($value); } }, 'break_chain_on_failure' => true, ], ]], ] ], 'parent_id' => [ 'required' => false, ], 'is_default' => [ 'required' => true, ], 'is_auto' => [ 'required' => true, ], 'ldap_fitler' => [ 'required' => false, ], 'old-libelle' => [ 'required' => false, ], 'old-roleid' => [ 'parent' => [ 'required' => false, ], ])); } public function setOldLibelle($value) { $this->get('old-libelle')->setValue($value); } public function setOldRoleId($value) { $this->get('old-roleid')->setValue($value); } } No newline at end of file