diff --git a/CHANGELOG.md b/CHANGELOG.md index f86c1b0bc..509682ed1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ and this project adheres to ## Unreleased +* [main] allow hide permissions group list menu (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/577) * [main] allow hide change user password menu (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/577) * [main] filter user jobs by active jobs (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/577) * [main] add civility to User (entity, migration and form type) (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/577) diff --git a/src/Bundle/ChillMainBundle/Controller/UserController.php b/src/Bundle/ChillMainBundle/Controller/UserController.php index b344a0b2e..164c2a534 100644 --- a/src/Bundle/ChillMainBundle/Controller/UserController.php +++ b/src/Bundle/ChillMainBundle/Controller/UserController.php @@ -38,6 +38,8 @@ class UserController extends CRUDController { public const FORM_GROUP_CENTER_COMPOSED = 'composed_groupcenter'; + protected ParameterBagInterface $parameterBag; + private LoggerInterface $logger; private UserPasswordEncoderInterface $passwordEncoder; @@ -46,8 +48,6 @@ class UserController extends CRUDController private ValidatorInterface $validator; - protected ParameterBagInterface $parameterBag; - public function __construct( LoggerInterface $chillLogger, ValidatorInterface $validator, diff --git a/src/Bundle/ChillMainBundle/DependencyInjection/ChillMainExtension.php b/src/Bundle/ChillMainBundle/DependencyInjection/ChillMainExtension.php index 2c25d35f3..929bffe14 100644 --- a/src/Bundle/ChillMainBundle/DependencyInjection/ChillMainExtension.php +++ b/src/Bundle/ChillMainBundle/DependencyInjection/ChillMainExtension.php @@ -134,6 +134,11 @@ class ChillMainExtension extends Extension implements $config['access_user_change_password'] ); + $container->setParameter( + 'chill_main.access_permissions_group_list', + $config['access_permissions_group_list'] + ); + $container->setParameter( 'chill_main.routing.resources', $config['routing']['resources'] diff --git a/src/Bundle/ChillMainBundle/DependencyInjection/Configuration.php b/src/Bundle/ChillMainBundle/DependencyInjection/Configuration.php index 2fa6df80a..a9b3ffec0 100644 --- a/src/Bundle/ChillMainBundle/DependencyInjection/Configuration.php +++ b/src/Bundle/ChillMainBundle/DependencyInjection/Configuration.php @@ -119,6 +119,9 @@ class Configuration implements ConfigurationInterface ->booleanNode('access_user_change_password') ->defaultTrue() ->end() + ->booleanNode('access_permissions_group_list') + ->defaultTrue() + ->end() ->arrayNode('redis') ->children() ->scalarNode('host') diff --git a/src/Bundle/ChillMainBundle/Form/UserType.php b/src/Bundle/ChillMainBundle/Form/UserType.php index 72047ce61..9e7da7a89 100644 --- a/src/Bundle/ChillMainBundle/Form/UserType.php +++ b/src/Bundle/ChillMainBundle/Form/UserType.php @@ -34,10 +34,10 @@ use Symfony\Component\Validator\Constraints\Regex; class UserType extends AbstractType { - private TranslatableStringHelper $translatableStringHelper; - protected ParameterBagInterface $parameterBag; + private TranslatableStringHelper $translatableStringHelper; + public function __construct( TranslatableStringHelper $translatableStringHelper, ParameterBagInterface $parameterBag @@ -91,6 +91,7 @@ class UserType extends AbstractType 'query_builder' => static function (EntityRepository $er) { $qb = $er->createQueryBuilder('uj'); $qb->where('uj.active = TRUE'); + return $qb; }, ]) diff --git a/src/Bundle/ChillMainBundle/Routing/MenuBuilder/AdminUserMenuBuilder.php b/src/Bundle/ChillMainBundle/Routing/MenuBuilder/AdminUserMenuBuilder.php index 7b3399503..b885e1641 100644 --- a/src/Bundle/ChillMainBundle/Routing/MenuBuilder/AdminUserMenuBuilder.php +++ b/src/Bundle/ChillMainBundle/Routing/MenuBuilder/AdminUserMenuBuilder.php @@ -13,6 +13,7 @@ namespace Chill\MainBundle\Routing\MenuBuilder; use Chill\MainBundle\Routing\LocalMenuBuilderInterface; use Knp\Menu\MenuItem; +use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface; use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface; class AdminUserMenuBuilder implements LocalMenuBuilderInterface @@ -22,9 +23,14 @@ class AdminUserMenuBuilder implements LocalMenuBuilderInterface */ protected $authorizationChecker; - public function __construct(AuthorizationCheckerInterface $authorizationChecker) - { + protected ParameterBagInterface $parameterBag; + + public function __construct( + AuthorizationCheckerInterface $authorizationChecker, + ParameterBagInterface $parameterBag + ) { $this->authorizationChecker = $authorizationChecker; + $this->parameterBag = $parameterBag; } public function buildMenu($menuId, MenuItem $menu, array $parameters) @@ -51,9 +57,11 @@ class AdminUserMenuBuilder implements LocalMenuBuilderInterface 'route' => 'admin_scope', ])->setExtras(['order' => 1020]); - $menu->addChild('Permissions group list', [ - 'route' => 'admin_permissionsgroup', - ])->setExtras(['order' => 1030]); + if ($this->parameterBag->get('chill_main.access_permissions_group_list')) { + $menu->addChild('Permissions group list', [ + 'route' => 'admin_permissionsgroup', + ])->setExtras(['order' => 1030]); + } $menu->addChild('crud.admin_user.index.title', [ 'route' => 'chill_crud_admin_user_index', diff --git a/src/Bundle/ChillMainBundle/Routing/MenuBuilder/UserMenuBuilder.php b/src/Bundle/ChillMainBundle/Routing/MenuBuilder/UserMenuBuilder.php index df3ba5121..6b6f9cceb 100644 --- a/src/Bundle/ChillMainBundle/Routing/MenuBuilder/UserMenuBuilder.php +++ b/src/Bundle/ChillMainBundle/Routing/MenuBuilder/UserMenuBuilder.php @@ -21,6 +21,8 @@ use Symfony\Contracts\Translation\TranslatorInterface; class UserMenuBuilder implements LocalMenuBuilderInterface { + protected ParameterBagInterface $parameterBag; + private NotificationByUserCounter $notificationByUserCounter; private Security $security; @@ -29,8 +31,6 @@ class UserMenuBuilder implements LocalMenuBuilderInterface private WorkflowByUserCounter $workflowByUserCounter; - protected ParameterBagInterface $parameterBag; - public function __construct( NotificationByUserCounter $notificationByUserCounter, WorkflowByUserCounter $workflowByUserCounter,