From da2c88c026f56ba69165b3d8055dc803419f704e Mon Sep 17 00:00:00 2001 From: nobohan Date: Wed, 25 May 2022 10:12:07 +0200 Subject: [PATCH] [admin] show/hide the user permissions group depending on config --- .../Controller/UserController.php | 69 +++++++++++++++ .../Resources/views/User/edit.html.twig | 88 ++++++++++--------- 2 files changed, 114 insertions(+), 43 deletions(-) diff --git a/src/Bundle/ChillMainBundle/Controller/UserController.php b/src/Bundle/ChillMainBundle/Controller/UserController.php index 164c2a534..64a40cdda 100644 --- a/src/Bundle/ChillMainBundle/Controller/UserController.php +++ b/src/Bundle/ChillMainBundle/Controller/UserController.php @@ -109,6 +109,7 @@ class UserController extends CRUDController return $this->render('@ChillMain/User/edit.html.twig', [ 'entity' => $user, + 'access_permissions_group_list' => $this->parameterBag->get('chill_main.access_permissions_group_list'), 'edit_form' => $this->createEditForm($user)->createView(), 'add_groupcenter_form' => $this->createAddLinkGroupCenterForm($user, $request)->createView(), 'delete_groupcenter_form' => array_map( @@ -158,6 +159,74 @@ class UserController extends CRUDController return $this->redirect($this->generateUrl('chill_crud_admin_user_edit', ['id' => $uid])); } + + public function edit(Request $request, $id): Response + { + $action = 'edit'; + $entity = $this->getEntity($action, $id, $request); + + if (null === $entity) { + throw $this->createNotFoundException( + sprintf( + 'The %s with id %s is not found', + $this->getCrudName(), + $id + ) + ); + } + + $response = $this->checkACL($action, $entity); + + if ($response instanceof Response) { + return $response; + } + + $response = $this->onPostCheckACL($action, $request, $entity); + + if ($response instanceof Response) { + return $response; + } + + $form = $this->createFormFor($action, $entity); + + $form->handleRequest($request); + + if ($form->isSubmitted() && $form->isValid()) { + $this->onFormValid($action, $entity, $form, $request); + $em = $this->getDoctrine()->getManager(); + + $this->onPreFlush($action, $entity, $form, $request); + $em->flush(); + $this->onPostFlush($action, $entity, $form, $request); + + $this->addFlash('success', $this->generateFormSuccessMessage($action, $entity)); + + $result = $this->onBeforeRedirectAfterSubmission($action, $entity, $form, $request); + + if ($result instanceof Response) { + return $result; + } + + return $this->redirectToRoute('chill_crud_' . $this->getCrudName() . '_index'); + } + + if ($form->isSubmitted()) { + $this->addFlash('error', $this->generateFormErrorMessage($action, $form)); + } + + $defaultTemplateParameters = [ + 'form' => $form->createView(), + 'entity' => $entity, + 'crud_name' => $this->getCrudName(), + 'access_permissions_group_list' => $this->parameterBag->get('chill_main.access_permissions_group_list'), + ]; + + return $this->render( + $this->getTemplateFor($action, $entity, $request), + $this->generateTemplateParameter($action, $entity, $request, $defaultTemplateParameters) + ); + } + /** * Displays a form to edit the user current location. * diff --git a/src/Bundle/ChillMainBundle/Resources/views/User/edit.html.twig b/src/Bundle/ChillMainBundle/Resources/views/User/edit.html.twig index 0fa376b34..0ecbdef9f 100644 --- a/src/Bundle/ChillMainBundle/Resources/views/User/edit.html.twig +++ b/src/Bundle/ChillMainBundle/Resources/views/User/edit.html.twig @@ -3,54 +3,56 @@ {% block admin_content -%} {% embed '@ChillMain/CRUD/_edit_content.html.twig' %} {% block crud_content_after_form %} -

{{ 'Permissions granted'|trans }}

+ {% if access_permissions_group_list %} +

{{ 'Permissions granted'|trans }}

- {% if entity.groupcenters|length > 0 %} - - - - - - - - - - {% for groupcenter in entity.groupcenters %} + {% if entity.groupcenters|length > 0 %} +
{{ 'Permission group'|trans }}{{ 'Center'|trans }} 
+ - - - + + + - {% endfor %} - -
- - {{ groupcenter.permissionsgroup.name }} - - - - {{ groupcenter.center.name }} - - - {{ form_start(delete_groupcenter_form[groupcenter.id]) }} - {{ form_row(delete_groupcenter_form[groupcenter.id].submit, { 'attr': { 'class': 'btn btn-chill-red' } } ) }} - {{ form_rest(delete_groupcenter_form[groupcenter.id]) }} - {{ form_end(delete_groupcenter_form[groupcenter.id]) }} - {{ 'Permission group'|trans }}{{ 'Center'|trans }} 
- {% else %} -

{{ 'Any permissions granted to this user'|trans }}.

+ + + {% for groupcenter in entity.groupcenters %} + + + + {{ groupcenter.permissionsgroup.name }} + + + + + {{ groupcenter.center.name }} + + + + {{ form_start(delete_groupcenter_form[groupcenter.id]) }} + {{ form_row(delete_groupcenter_form[groupcenter.id].submit, { 'attr': { 'class': 'btn btn-chill-red' } } ) }} + {{ form_rest(delete_groupcenter_form[groupcenter.id]) }} + {{ form_end(delete_groupcenter_form[groupcenter.id]) }} + + + {% endfor %} + + + {% else %} +

{{ 'Any permissions granted to this user'|trans }}.

+ {% endif %} + +

{{ 'Grant new permissions'|trans }}

+ + {{ form_start(add_groupcenter_form) }} + {{ form_row(add_groupcenter_form.composed_groupcenter.center) }} + {{ form_row(add_groupcenter_form.composed_groupcenter.permissionsgroup) }} + {{ form_row(add_groupcenter_form.submit, { 'attr' : { 'class': 'btn btn-chill-green' } } ) }} + + {{ form_end(add_groupcenter_form) }} {% endif %} - -

{{ 'Grant new permissions'|trans }}

- - {{ form_start(add_groupcenter_form) }} - {{ form_row(add_groupcenter_form.composed_groupcenter.center) }} - {{ form_row(add_groupcenter_form.composed_groupcenter.permissionsgroup) }} - {{ form_row(add_groupcenter_form.submit, { 'attr' : { 'class': 'btn btn-chill-green' } } ) }} - - {{ form_end(add_groupcenter_form) }} - {% endblock %} + {% block content_form_actions_save_and_show %}{% endblock %} {% endembed %} {% endblock %}