44
55namespace App \Controller \Admin ;
66
7+ use App \EasyAdmin \Config \AutoBadgeMenuItem ;
78use App \Entity \Advisory ;
89use App \Entity \DetectionResult ;
910use App \Entity \DockerImage ;
1819use App \Entity \Package ;
1920use App \Entity \PackageVersion ;
2021use App \Entity \Project ;
22+ use App \Entity \SecurityContract ;
2123use App \Entity \Server ;
2224use App \Entity \ServiceCertificate ;
2325use App \Entity \Site ;
2426use App \Repository \AdvisoryRepository ;
27+ use App \Repository \OIDCRepository ;
28+ use App \Repository \SecurityContractRepository ;
29+ use App \Repository \ServiceCertificateRepository ;
2530use EasyCorp \Bundle \EasyAdminBundle \Config \Assets ;
2631use EasyCorp \Bundle \EasyAdminBundle \Config \Crud ;
2732use EasyCorp \Bundle \EasyAdminBundle \Config \Dashboard ;
@@ -35,6 +40,9 @@ class DashboardController extends AbstractDashboardController
3540 public function __construct (
3641 private readonly AdminUrlGenerator $ adminUrlGenerator ,
3742 private readonly AdvisoryRepository $ advisoryRepository ,
43+ private readonly ServiceCertificateRepository $ serviceCertificateRepository ,
44+ private readonly OIDCRepository $ oidcRepository ,
45+ private readonly SecurityContractRepository $ securityContractRepository ,
3846 ) {
3947 }
4048
@@ -62,17 +70,27 @@ public function configureDashboard(): Dashboard
6270 public function configureMenuItems (): iterable
6371 {
6472 yield MenuItem::linkToDashboard ('Dashboard ' , 'fa fa-home ' );
65- yield MenuItem::linkToCrud ('Servers ' , 'fas fa-server ' , Server::class);
73+
74+ yield MenuItem::section ('Projects ' );
6675 yield MenuItem::linkToCrud ('Projects ' , 'fas fa-folder ' , Project::class);
76+ yield AutoBadgeMenuItem::linkToCrud ('Cyber Security ' , 'fas fa-file-contract ' , SecurityContract::class)
77+ ->setBadge ($ this ->securityContractRepository ->countExpiredContracts (), 'danger ' );
78+ yield AutoBadgeMenuItem::linkToCrud ('OIDC ' , 'fas fa-shield-halved ' , OIDC ::class)
79+ ->setBadge ($ this ->oidcRepository ->countExpiredCertificates (), 'danger ' );
80+ yield AutoBadgeMenuItem::linkToCrud ('Service certificates ' , 'fas fa-passport ' , ServiceCertificate::class)
81+ ->setBadge ($ this ->serviceCertificateRepository ->countExpiredCertificates (), 'danger ' );
82+
83+ yield MenuItem::section ('Hosting ' );
84+ yield MenuItem::linkToCrud ('Servers ' , 'fas fa-server ' , Server::class);
6785 yield MenuItem::linkToCrud ('Installations ' , 'fas fa-folder ' , Installation::class);
6886 yield MenuItem::linkToCrud ('Sites ' , 'fas fa-bookmark ' , Site::class);
6987 yield MenuItem::linkToCrud ('Domains ' , 'fas fa-link ' , Domain::class);
70- yield MenuItem::linkToCrud ('OIDC ' , 'fas fa-key ' , OIDC ::class);
71- yield MenuItem::linkToCrud ('Service certificates ' , 'fas fa-lock ' , ServiceCertificate::class);
88+
7289 yield MenuItem::section ('Dependencies ' );
7390 yield MenuItem::linkToCrud ('Packages ' , 'fas fa-cube ' , Package::class);
7491 yield MenuItem::linkToCrud ('Package Versions ' , 'fas fa-cubes ' , PackageVersion::class);
75- yield MenuItem::linkToCrud ('Advisories ' , 'fas fa-skull-crossbones ' , Advisory::class)->setBadge ($ this ->advisoryRepository ->count ([]), 'dark ' );
92+ yield AutoBadgeMenuItem::linkToCrud ('Advisories ' , 'fas fa-skull-crossbones ' , Advisory::class)
93+ ->setBadge ($ this ->advisoryRepository ->count ([]), 'danger ' );
7694 yield MenuItem::linkToCrud ('Modules ' , 'fas fa-cube ' , Module::class);
7795 yield MenuItem::linkToCrud ('Modules Versions ' , 'fas fa-cubes ' , ModuleVersion::class);
7896 yield MenuItem::linkToCrud ('Docker Images ' , 'fas fa-cube ' , DockerImage::class);
0 commit comments