diff --git a/src/AppBundle/EventListener/MenuBuilder.php b/src/AppBundle/EventListener/MenuBuilder.php index 8fd05b4f..2c7dd37b 100644 --- a/src/AppBundle/EventListener/MenuBuilder.php +++ b/src/AppBundle/EventListener/MenuBuilder.php @@ -58,6 +58,7 @@ class MenuBuilder { $request = $event->getRequest(); $isLoggedIn = $this->security->isGranted('IS_AUTHENTICATED_FULLY'); + $isTeamlead = $isLoggedIn && $this->security->isGranted('ROLE_TEAMLEAD'); $isAdmin = $isLoggedIn && $this->security->isGranted('ROLE_ADMIN'); $event->addItem( @@ -73,12 +74,15 @@ class MenuBuilder ) ); - if ($isAdmin) { + if ($isTeamlead) { $admin = new MenuItemModel('admin', 'menu.admin', '', [], 'fa fa-wrench'); $event->addItem($admin); - $admin->addChild( - new MenuItemModel('user_admin', 'menu.admin_user', 'admin_user', [], 'fa fa-user') - ); + + if ($isAdmin) { + $admin->addChild( + new MenuItemModel('user_admin', 'menu.admin_user', 'admin_user', [], 'fa fa-user') + ); + } $this->eventDispatcher->dispatch( ConfigureAdminMenuEvent::CONFIGURE, diff --git a/src/TimesheetBundle/Controller/Admin/TimesheetController.php b/src/TimesheetBundle/Controller/Admin/TimesheetController.php index 08a0f474..ee773e52 100644 --- a/src/TimesheetBundle/Controller/Admin/TimesheetController.php +++ b/src/TimesheetBundle/Controller/Admin/TimesheetController.php @@ -11,6 +11,7 @@ namespace TimesheetBundle\Controller\Admin; +use Pagerfanta\Pagerfanta; use TimesheetBundle\Entity\Timesheet; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method; @@ -21,8 +22,8 @@ use Sensio\Bundle\FrameworkExtraBundle\Configuration\Cache; /** * Controller used for manage timesheet entries in the admin part of the site. * - * @Route("/admin/timesheet") - * @Security("has_role('ROLE_ADMIN')") + * @Route("/team/timesheet") + * @Security("has_role('ROLE_TEAMLEAD')") * * @author Kevin Papst */ diff --git a/src/TimesheetBundle/EventListener/Menu.php b/src/TimesheetBundle/EventListener/Menu.php index 623c1009..8c784e16 100644 --- a/src/TimesheetBundle/EventListener/Menu.php +++ b/src/TimesheetBundle/EventListener/Menu.php @@ -52,16 +52,23 @@ class Menu $menu = $event->getAdminMenu(); $auth = $event->getAuth(); - $isLoggedIn = $auth->isGranted('IS_AUTHENTICATED_FULLY'); - $isAdmin = $isLoggedIn && $auth->isGranted('ROLE_ADMIN'); + if (!$auth->isGranted('IS_AUTHENTICATED_FULLY')) { + return; + } - if (!$isAdmin) { + if (!$auth->isGranted('ROLE_TEAMLEAD')) { return; } $menu->addChild( new MenuItemModel('timesheet_admin', 'menu.admin_timesheet', 'admin_timesheet', [], 'fa fa-clock-o') - )->addChild( + ); + + if (!$auth->isGranted('ROLE_ADMIN')) { + return; + } + + $menu->addChild( new MenuItemModel('customer_admin', 'menu.admin_customer', 'admin_customer', [], 'fa fa-users') )->addChild( new MenuItemModel('project_admin', 'menu.admin_project', 'admin_project', [], 'fa fa-book')