diff --git a/src/Event/ConfigureAdminMenuEvent.php b/src/Event/ConfigureAdminMenuEvent.php index 18ec0d94..b6e85d0d 100644 --- a/src/Event/ConfigureAdminMenuEvent.php +++ b/src/Event/ConfigureAdminMenuEvent.php @@ -10,23 +10,48 @@ namespace App\Event; use KevinPapst\AdminLTEBundle\Model\MenuItemModel; +use Symfony\Component\EventDispatcher\Event; +use Symfony\Component\HttpFoundation\Request; /** * The ConfigureAdminMenuEvent is used for populating the administration navigation. */ -class ConfigureAdminMenuEvent extends ConfigureMenuEvent +class ConfigureAdminMenuEvent extends Event { public const CONFIGURE = 'app.admin_menu_configure'; /** - * This function will either return a MenuItem or null. - * - * In case this returns null, the user has not the ROLE_ADMIN. - * - * @return MenuItemModel|null + * @var Request + */ + private $request; + /** + * @var MenuItemModel + */ + private $menu; + + /** + * @param Request $request + * @param MenuItemModel $menu + */ + public function __construct(Request $request, MenuItemModel $menu) + { + $this->request = $request; + $this->menu = $menu; + } + + /** + * @return Request + */ + public function getRequest() + { + return $this->request; + } + + /** + * @return MenuItemModel */ public function getAdminMenu() { - return $this->getMenu()->getRootItem('admin'); + return $this->menu; } } diff --git a/src/Event/ConfigureMainMenuEvent.php b/src/Event/ConfigureMainMenuEvent.php index df3cd4d9..5604f266 100644 --- a/src/Event/ConfigureMainMenuEvent.php +++ b/src/Event/ConfigureMainMenuEvent.php @@ -9,10 +9,51 @@ namespace App\Event; +use KevinPapst\AdminLTEBundle\Event\SidebarMenuEvent; +use Symfony\Component\EventDispatcher\Event; +use Symfony\Component\HttpFoundation\Request; + /** * The ConfigureMainMenuEvent is used for populating the main navigation. */ -class ConfigureMainMenuEvent extends ConfigureMenuEvent +class ConfigureMainMenuEvent extends Event { public const CONFIGURE = 'app.main_menu_configure'; + + /** + * @var Request + */ + private $request; + /** + * @var SidebarMenuEvent + */ + private $event; + + /** + * @param Request $request + * @param SidebarMenuEvent $event + */ + public function __construct( + Request $request, + SidebarMenuEvent $event + ) { + $this->request = $request; + $this->event = $event; + } + + /** + * @return Request + */ + public function getRequest() + { + return $this->request; + } + + /** + * @return SidebarMenuEvent + */ + public function getMenu() + { + return $this->event; + } } diff --git a/src/Event/ConfigureMenuEvent.php b/src/Event/ConfigureMenuEvent.php deleted file mode 100644 index 98b84a06..00000000 --- a/src/Event/ConfigureMenuEvent.php +++ /dev/null @@ -1,58 +0,0 @@ -request = $request; - $this->event = $event; - } - - /** - * @return Request - */ - public function getRequest() - { - return $this->request; - } - - /** - * @return SidebarMenuEvent - */ - public function getMenu() - { - return $this->event; - } -} diff --git a/src/EventSubscriber/MenuBuilderSubscriber.php b/src/EventSubscriber/MenuBuilderSubscriber.php index 0067fec8..0d4b067c 100644 --- a/src/EventSubscriber/MenuBuilderSubscriber.php +++ b/src/EventSubscriber/MenuBuilderSubscriber.php @@ -61,8 +61,6 @@ class MenuBuilderSubscriber implements EventSubscriberInterface public function onSetupNavbar(SidebarMenuEvent $event) { $request = $event->getRequest(); - $isLoggedIn = $this->security->isGranted('IS_AUTHENTICATED_REMEMBERED'); - $isTeamlead = $isLoggedIn && $this->security->isGranted('ROLE_TEAMLEAD'); $event->addItem( new MenuItemModel('dashboard', 'menu.homepage', 'dashboard', [], 'fas fa-tachometer-alt') @@ -76,17 +74,18 @@ class MenuBuilderSubscriber implements EventSubscriberInterface ) ); - if ($isTeamlead) { - $admin = new MenuItemModel('admin', 'menu.admin', '', [], 'fas fa-wrench'); - $event->addItem($admin); + $admin = new MenuItemModel('admin', 'menu.admin', '', [], 'fas fa-wrench'); - $this->eventDispatcher->dispatch( - ConfigureAdminMenuEvent::CONFIGURE, - new ConfigureAdminMenuEvent( - $request, - $event - ) - ); + $this->eventDispatcher->dispatch( + ConfigureAdminMenuEvent::CONFIGURE, + new ConfigureAdminMenuEvent( + $request, + $admin + ) + ); + + if ($admin->hasChildren()) { + $event->addItem($admin); } $this->activateByRoute( diff --git a/src/Form/TimesheetEditForm.php b/src/Form/TimesheetEditForm.php index 554ac2aa..800ea386 100644 --- a/src/Form/TimesheetEditForm.php +++ b/src/Form/TimesheetEditForm.php @@ -32,7 +32,6 @@ use Symfony\Component\OptionsResolver\OptionsResolver; */ class TimesheetEditForm extends AbstractType { - /** * @var CustomerRepository */ diff --git a/src/Repository/UserRepository.php b/src/Repository/UserRepository.php index 191014ea..956c334e 100644 --- a/src/Repository/UserRepository.php +++ b/src/Repository/UserRepository.php @@ -39,6 +39,7 @@ class UserRepository extends AbstractRepository implements UserLoaderInterface return parent::findOneBy($criteria, $orderBy); } + /** * @return int */ diff --git a/tests/Event/ConfigureAdminMenuEventTest.php b/tests/Event/ConfigureAdminMenuEventTest.php index d86d7c19..a76d07ac 100644 --- a/tests/Event/ConfigureAdminMenuEventTest.php +++ b/tests/Event/ConfigureAdminMenuEventTest.php @@ -10,7 +10,6 @@ namespace App\Tests\EventSubscriber; use App\Event\ConfigureAdminMenuEvent; -use KevinPapst\AdminLTEBundle\Event\SidebarMenuEvent; use KevinPapst\AdminLTEBundle\Model\MenuItemModel; use PHPUnit\Framework\TestCase; use Symfony\Component\HttpFoundation\Request; @@ -25,15 +24,10 @@ class ConfigureAdminMenuEventTest extends TestCase $request = new Request(); $request->setLocale('de'); - $event = new SidebarMenuEvent($request); $admin = new MenuItemModel('admin', 'foo', 'bar'); - $event->addItem($admin); - $event->addItem(new MenuItemModel('foo', 'foo', 'bar')); - - $sut = new ConfigureAdminMenuEvent($request, $event); + $sut = new ConfigureAdminMenuEvent($request, $admin); $this->assertEquals($request, $sut->getRequest()); - $this->assertEquals($event, $sut->getMenu()); $this->assertEquals($admin, $sut->getAdminMenu()); } } diff --git a/tests/Invoice/Calculator/ActivityInvoiceCalculatorTest.php b/tests/Invoice/Calculator/ActivityInvoiceCalculatorTest.php index 831a4762..31b60302 100644 --- a/tests/Invoice/Calculator/ActivityInvoiceCalculatorTest.php +++ b/tests/Invoice/Calculator/ActivityInvoiceCalculatorTest.php @@ -52,7 +52,6 @@ class ActivityInvoiceCalculatorTest extends AbstractCalculatorTest ->setUser($user) ->setActivity($activity1) ->setProject((new Project())->setName('bar')); - ; $timesheet2 = new Timesheet(); $timesheet2 @@ -61,7 +60,6 @@ class ActivityInvoiceCalculatorTest extends AbstractCalculatorTest ->setUser($user) ->setActivity($activity2) ->setProject((new Project())->setName('bar')); - ; $timesheet3 = new Timesheet(); $timesheet3 @@ -70,7 +68,6 @@ class ActivityInvoiceCalculatorTest extends AbstractCalculatorTest ->setUser($user) ->setActivity($activity1) ->setProject((new Project())->setName('bar')); - ; $timesheet4 = new Timesheet(); $timesheet4 @@ -79,7 +76,6 @@ class ActivityInvoiceCalculatorTest extends AbstractCalculatorTest ->setUser($user) ->setActivity($activity2) ->setProject((new Project())->setName('bar')); - ; $timesheet5 = new Timesheet(); $timesheet5 @@ -88,7 +84,6 @@ class ActivityInvoiceCalculatorTest extends AbstractCalculatorTest ->setUser(new User()) ->setActivity(new Activity()) ->setProject((new Project())->setName('bar')); - ; $entries = [$timesheet, $timesheet2, $timesheet3, $timesheet4, $timesheet5]; diff --git a/tests/Invoice/Calculator/UserInvoiceCalculatorTest.php b/tests/Invoice/Calculator/UserInvoiceCalculatorTest.php index 13059a8a..47b9b77e 100644 --- a/tests/Invoice/Calculator/UserInvoiceCalculatorTest.php +++ b/tests/Invoice/Calculator/UserInvoiceCalculatorTest.php @@ -52,7 +52,6 @@ class UserInvoiceCalculatorTest extends AbstractCalculatorTest ->setUser($user1) ->setActivity($activity) ->setProject((new Project())->setName('bar')); - ; $timesheet2 = new Timesheet(); $timesheet2 @@ -61,7 +60,6 @@ class UserInvoiceCalculatorTest extends AbstractCalculatorTest ->setUser($user2) ->setActivity($activity) ->setProject((new Project())->setName('bar')); - ; $timesheet3 = new Timesheet(); $timesheet3 @@ -70,7 +68,6 @@ class UserInvoiceCalculatorTest extends AbstractCalculatorTest ->setUser($user1) ->setActivity($activity) ->setProject((new Project())->setName('bar')); - ; $timesheet4 = new Timesheet(); $timesheet4 @@ -79,7 +76,6 @@ class UserInvoiceCalculatorTest extends AbstractCalculatorTest ->setUser($user2) ->setActivity($activity) ->setProject((new Project())->setName('bar')); - ; $timesheet5 = new Timesheet(); $timesheet5 @@ -88,7 +84,6 @@ class UserInvoiceCalculatorTest extends AbstractCalculatorTest ->setUser(new User()) ->setActivity($activity) ->setProject((new Project())->setName('bar')); - ; $entries = [$timesheet, $timesheet2, $timesheet3, $timesheet4, $timesheet5];