Code Coverage |
||||||||||||||||
Lines |
Branches |
Paths |
Functions and Methods |
Classes and Traits |
||||||||||||
| Total | |
100.00% |
68 / 68 |
|
96.15% |
25 / 26 |
|
0.02% |
1 / 4096 |
|
0.00% |
0 / 1 |
CRAP | |
0.00% |
0 / 1 |
| MenuAdmin | |
100.00% |
68 / 68 |
|
96.15% |
25 / 26 |
|
0.02% |
1 / 4096 |
|
100.00% |
1 / 1 |
181.88 | |
100.00% |
1 / 1 |
| __construct | |
100.00% |
68 / 68 |
|
96.15% |
25 / 26 |
|
0.02% |
1 / 4096 |
|
100.00% |
1 / 1 |
181.88 | |||
| 1 | <?php |
| 2 | |
| 3 | namespace App\Menu; |
| 4 | |
| 5 | use App\Application; |
| 6 | use App\Security\Action; |
| 7 | use Symfony\Bundle\SecurityBundle\Security; |
| 8 | |
| 9 | class MenuAdmin extends MenuBase |
| 10 | { |
| 11 | public function __construct(MenuTwig $menuTwig, Security $security, Application $application) |
| 12 | { |
| 13 | parent::__construct($menuTwig); |
| 14 | $user = $security->getUser(); |
| 15 | if ($security->isGranted(Action::ADMIN_PAGE)) { |
| 16 | $menuTwig->addItem( |
| 17 | 'redaction_left', |
| 18 | new MenuItem('admin_page', 'Information', 'admin_page') |
| 19 | ); |
| 20 | } |
| 21 | if ($security->isGranted(Action::ADMIN_PARAMETER)) { |
| 22 | $menuTwig->addItem( |
| 23 | 'redaction_left', |
| 24 | new MenuItem('admin_parameter', 'Parameter', 'admin_parameter') |
| 25 | ); |
| 26 | } |
| 27 | if ($security->isGranted(Action::ADMIN_MAIL_TEST)) { |
| 28 | $menuTwig->addItem( |
| 29 | 'redaction_left', |
| 30 | new MenuItem('admin_mail_test', 'Test Email', 'admin_mail_test') |
| 31 | ); |
| 32 | } |
| 33 | |
| 34 | if ($security->isGranted(Action::ADMIN_PAGE)) { |
| 35 | $menuTwig->addItem('redaction_left', new MenuItem('Edit Page', 'editor', 'editor')); |
| 36 | } |
| 37 | if ($security->isGranted(Action::ADMIN_PAGE)) { |
| 38 | $menuTwig->addItem('redaction_left', new MenuItem('todo', 'To Do', 'todo')); |
| 39 | } |
| 40 | |
| 41 | $menuTwig->addItem( |
| 42 | 'redaction_left', |
| 43 | new MenuItem('applicationInfo', 'applicationInfo', 'applicationInfo') |
| 44 | ); |
| 45 | if ($security->isGranted(Action::ADMIN_LOG)) { |
| 46 | $menuTwig->addItem('redaction_left', new MenuItem('admin_log', 'logs', 'admin_log')); |
| 47 | } |
| 48 | $subDemoMenus = [ |
| 49 | new MenuItem('demo1', 'Demo', 'homepage'), |
| 50 | new MenuItem('demo2', 'ge.ch', null, null, ['url' => 'https://ge.ch']), |
| 51 | new MenuItem('demo3', 'SITG', null, null, ['url' => 'https://sitg.ge.ch']), |
| 52 | ]; |
| 53 | if ($security->isGranted(Action::ADMIN_PAGE)) { |
| 54 | $menuTwig->addItem( |
| 55 | 'redaction_left', |
| 56 | new MenuItem('admin_demo', 'Démo', null, [], [], $subDemoMenus) |
| 57 | ); |
| 58 | } |
| 59 | $menuTwig->addItem( |
| 60 | 'redaction_right', |
| 61 | new MenuItem( |
| 62 | 'idConnexion', |
| 63 | 'Bonjour ' . ($user instanceof \Symfony\Component\Security\Core\User\UserInterface ? '<strong>' . |
| 64 | $user->getUserIdentifier() . '</strong>' : ''), |
| 65 | 'info' |
| 66 | ) |
| 67 | ); |
| 68 | $menuTwig->addItem('redaction_right', new MenuItem('idDeconnexion', 'Se déconnecter', 'saml_logout')); |
| 69 | if ($security->isGranted(Action::NAVBAR_ENVIRONNEMENT)) { |
| 70 | $menuTwig->addItem( |
| 71 | 'redaction_right', |
| 72 | new MenuItem( |
| 73 | 'environnement', |
| 74 | '<span class="badge rounded-pill ' . $application->getServerType() . |
| 75 | '" data-bs-toggle="tooltip" title="Vous êtes dans l\'environnement de ' . |
| 76 | $application->getServerType() . "\nVersion : " . $application->getVersion() . '">' . |
| 77 | $application->getServerType() . '</span>' |
| 78 | ) |
| 79 | ); |
| 80 | } |
| 81 | $subSettingsMenus = []; |
| 82 | if ($security->isGranted(Action::ADMIN_PAGE)) { |
| 83 | $subSettingsMenus[] = new MenuItem('admin_page', 'Administration', 'admin_page'); |
| 84 | } |
| 85 | if ($security->isGranted(Action::HOMEPAGE)) { |
| 86 | $subSettingsMenus[] = new MenuItem('homepage', 'Accueil', 'homepage'); |
| 87 | } |
| 88 | if ([] !== $subSettingsMenus) { |
| 89 | $menuTwig->addItem( |
| 90 | 'redaction_right', |
| 91 | new MenuItem('settings', '<i class="bi bi-gear"></i>', null, [], [], $subSettingsMenus) |
| 92 | ); |
| 93 | } |
| 94 | } |
| 95 | } |