From 81520d0d7ddde9f294b041e6c95e1e4dccba79e7 Mon Sep 17 00:00:00 2001 From: Pierre Cadeot Date: Wed, 16 Dec 2020 13:33:23 +0400 Subject: [PATCH] fix role_admin route edispatcher/test --- .../Controller/ApiController.php | 32 +++++++++++++------ 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/src/ninegate-1.0/src/Cadoles/EdispatcherBundle/Controller/ApiController.php b/src/ninegate-1.0/src/Cadoles/EdispatcherBundle/Controller/ApiController.php index 17b1dc22..90925d4f 100755 --- a/src/ninegate-1.0/src/Cadoles/EdispatcherBundle/Controller/ApiController.php +++ b/src/ninegate-1.0/src/Cadoles/EdispatcherBundle/Controller/ApiController.php @@ -69,16 +69,28 @@ class ApiController extends Controller // Récupération UID $username = \phpCAS::getUser(); $attributes = \phpCAS::getAttributes(); - - return $this->render('CadolesEdispatcherBundle:Test:test.html.twig',[ - 'useheader' => true, - 'usemenu' => false, - 'usesidebar' => false, - 'attributes' => $attributes, - 'groups' => $groups, - 'username' => $username, - 'datasource' => $datasource, - ]); + if(isset($attributes[$this->getParameter('user_attr_cas_username')])) + $login = $attributes[$this->getParameter('user_attr_cas_username')]; + $user=$em->getRepository('CadolesCoreBundle:User')->findOneBy(["username"=>$login]); + if(!$user) { + $output["error"]="user does not exist"; + return new Response(json_encode($output), 400); + } + $roles=($user?$user->getRoles():["ROLE_ANONYME"]); + if (in_array("ROLE_ADMIN",$roles)) { + return $this->render('CadolesEdispatcherBundle:Test:test.html.twig',[ + 'useheader' => true, + 'usemenu' => false, + 'usesidebar' => false, + 'attributes' => $attributes, + 'groups' => $groups, + 'username' => $username, + 'datasource' => $datasource, + ]); + } else { + $output["error"]="access not granted"; + return new Response(json_encode($output), 403); + } }