<?php
namespace App\Controller\Admin;
use EasyCorp\Bundle\EasyAdminBundle\Config\Dashboard;
use EasyCorp\Bundle\EasyAdminBundle\Config\MenuItem;
use EasyCorp\Bundle\EasyAdminBundle\Controller\AbstractDashboardController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use App\Entity\User;
use EasyCorp\Bundle\EasyAdminBundle\Config\Action;
use EasyCorp\Bundle\EasyAdminBundle\Config\Assets;
use EasyCorp\Bundle\EasyAdminBundle\Router\AdminUrlGenerator;
use EasyCorp\Bundle\EasyAdminBundle\Security\AuthorizationChecker;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
class DashboardController extends AbstractDashboardController
{
/**
* @Route("/admin", name="admin")
*/
public function index(): Response
{
$adminUrlGenerator = $this->container->get(AdminUrlGenerator::class);
$userId = $this->getUser()->getId();
if (in_array("ROLE_ADMIN",$this->getUser()->getRoles())) {
return $this->redirect($adminUrlGenerator->setController(UserCrudController::class)->generateUrl());
}
else{
return $this->redirect($adminUrlGenerator->setController(UserCrudController::class)->setAction(Action::DETAIL)->setEntityId($userId)->generateUrl());
}
}
public function configureDashboard(): Dashboard
{
return Dashboard::new()
->setTitle('Wisewave Solutions');
}
public function configureMenuItems(): iterable
{
$adminUrlGenerator = $this->container->get(AdminUrlGenerator::class);
$url = $adminUrlGenerator
->setController(JobPositionCrudController::class)
->setAction(Action::INDEX)
->generateUrl();
if (in_array("ROLE_ADMIN",$this->getUser()->getRoles())) {
return [
MenuItem::linkToDashboard('HR Records', 'fa fa-user'),
MenuItem::linkToUrl('Job Position', 'fa link-icon', $url),
MenuItem::linkToDashboard('Support', 'fa link-icon'),
MenuItem::linkToDashboard('Utilities ', 'fa link-icon'),
MenuItem::linkToLogout('Logout', 'fa fa-exit'),
];
}
else{
return [
MenuItem::linkToDashboard('My Profile', 'fa fa-user'),
MenuItem::linkToLogout('Logout', 'fa fa-exit'),
];
}
}
public function configureAssets(): Assets
{
return Assets::new()->addCssFile('css/admin.css');
}
}