From 0d291b037c0b59b0547b5f04821426f30dd29302 Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Fri, 10 May 2019 07:02:37 +0000 Subject: [PATCH 1/2] Fix the error message when user tries to update the role ID. #210 --- src/Controller/RoleController.php | 15 ++++++++++++++- templates/role/form.html.twig | 3 ++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/Controller/RoleController.php b/src/Controller/RoleController.php index 49c03bc5..3d34eb50 100644 --- a/src/Controller/RoleController.php +++ b/src/Controller/RoleController.php @@ -9,6 +9,7 @@ use Doctrine\ORM\Query; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Validator\Validator\ValidatorInterface; +use Doctrine\DBAL\Exception\ForeignKeyConstraintViolationException; use App\Menu\Generator as MenuGenerator; use App\Access\Generator as ACLGenerator; @@ -275,7 +276,19 @@ class RoleController extends BaseController ], 422); } else { // validated! save the entity - $em->flush(); + // catch the exception in case user updated the id + try + { + $em->flush(); + } + catch(ForeignKeyConstraintViolationException $e) + { + $error_array['id'] = 'Role has already been assigned to user/s and id cannot be updated'; + return $this->json([ + 'success' => false, + 'errors' => $error_array + ], 403); + } // return successful response return $this->json([ diff --git a/templates/role/form.html.twig b/templates/role/form.html.twig index 7d86d28e..700356d3 100644 --- a/templates/role/form.html.twig +++ b/templates/role/form.html.twig @@ -116,7 +116,8 @@ } }); }).fail(function(response) { - if (response.status == 422) { + console.log(response.status); + if (response.status == 422 || response.status == 403) { var errors = response.responseJSON.errors; var firstfield = false; From b8a7cf6e2a51d0f9e2f97c20c87a15569b483578 Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Fri, 10 May 2019 07:09:42 +0000 Subject: [PATCH 2/2] Remove console.log message. #210 --- templates/role/form.html.twig | 1 - 1 file changed, 1 deletion(-) diff --git a/templates/role/form.html.twig b/templates/role/form.html.twig index 700356d3..e30c5789 100644 --- a/templates/role/form.html.twig +++ b/templates/role/form.html.twig @@ -116,7 +116,6 @@ } }); }).fail(function(response) { - console.log(response.status); if (response.status == 422 || response.status == 403) { var errors = response.responseJSON.errors; var firstfield = false;