mirror of
				https://gitlab.com/Chill-Projet/chill-bundles.git
				synced 2025-10-24 22:23:13 +00:00 
			
		
		
		
	Compare commits
	
		
			3 Commits
		
	
	
		
			replace_de
			...
			issue444_m
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| bb86d04e52 | |||
| 4c704734cd | |||
| 0ffd6a857c | 
| @@ -15,19 +15,13 @@ use Chill\ActivityBundle\Security\Authorization\ActivityVoter; | ||||
| use Chill\MainBundle\Routing\LocalMenuBuilderInterface; | ||||
| use Knp\Menu\MenuItem; | ||||
| use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface; | ||||
| use Symfony\Component\Translation\TranslatorInterface; | ||||
| use Symfony\Contracts\Translation\TranslatorInterface; | ||||
|  | ||||
| class PersonMenuBuilder implements LocalMenuBuilderInterface | ||||
| { | ||||
|     /** | ||||
|      * @var AuthorizationCheckerInterface | ||||
|      */ | ||||
|     protected $authorizationChecker; | ||||
|     protected AuthorizationCheckerInterface $authorizationChecker; | ||||
|  | ||||
|     /** | ||||
|      * @var TranslatorInterface | ||||
|      */ | ||||
|     protected $translator; | ||||
|     protected TranslatorInterface $translator; | ||||
|  | ||||
|     public function __construct( | ||||
|         AuthorizationCheckerInterface $authorizationChecker, | ||||
|   | ||||
| @@ -16,29 +16,17 @@ use Chill\TaskBundle\Templating\UI\CountNotificationTask; | ||||
| use Knp\Menu\MenuItem; | ||||
| use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface; | ||||
| use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface; | ||||
| use Symfony\Component\Translation\TranslatorInterface; | ||||
| use Symfony\Contracts\Translation\TranslatorInterface; | ||||
|  | ||||
| class UserMenuBuilder implements LocalMenuBuilderInterface | ||||
| { | ||||
|     /** | ||||
|      * @var AuthorizationCheckerInterface | ||||
|      */ | ||||
|     public $authorizationChecker; | ||||
|     public AuthorizationCheckerInterface $authorizationChecker; | ||||
|  | ||||
|     /** | ||||
|      * @var CountNotificationTask | ||||
|      */ | ||||
|     public $counter; | ||||
|     public CountNotificationTask $counter; | ||||
|  | ||||
|     /** | ||||
|      * @var TokenStorageInterface | ||||
|      */ | ||||
|     public $tokenStorage; | ||||
|     public TokenStorageInterface $tokenStorage; | ||||
|  | ||||
|     /** | ||||
|      * @var TranslatorInterface | ||||
|      */ | ||||
|     public $translator; | ||||
|     public TranslatorInterface $translator; | ||||
|  | ||||
|     public function __construct( | ||||
|         CountNotificationTask $counter, | ||||
|   | ||||
| @@ -14,14 +14,18 @@ namespace Chill\CalendarBundle\Menu; | ||||
| use Chill\MainBundle\Routing\LocalMenuBuilderInterface; | ||||
| use Chill\MainBundle\Security\Authorization\AuthorizationHelper; | ||||
| use Chill\PersonBundle\Entity\AccompanyingPeriod; | ||||
| use Chill\PersonBundle\Security\Authorization\AccompanyingPeriodVoter; | ||||
| use Knp\Menu\MenuItem; | ||||
| use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface; | ||||
| use Symfony\Component\Security\Core\Security; | ||||
| use Symfony\Contracts\Translation\TranslatorInterface; | ||||
|  | ||||
| class AccompanyingCourseMenuBuilder implements LocalMenuBuilderInterface | ||||
| { | ||||
|     protected AuthorizationHelper $authorizationHelper; | ||||
|  | ||||
|     protected Security $security; | ||||
|  | ||||
|     protected TokenStorageInterface $tokenStorage; | ||||
|  | ||||
|     protected TranslatorInterface $translator; | ||||
| @@ -29,11 +33,13 @@ class AccompanyingCourseMenuBuilder implements LocalMenuBuilderInterface | ||||
|     public function __construct( | ||||
|         TokenStorageInterface $tokenStorage, | ||||
|         AuthorizationHelper $authorizationHelper, | ||||
|         TranslatorInterface $translator | ||||
|         TranslatorInterface $translator, | ||||
|         Security $security | ||||
|     ) { | ||||
|         $this->translator = $translator; | ||||
|         $this->authorizationHelper = $authorizationHelper; | ||||
|         $this->tokenStorage = $tokenStorage; | ||||
|         $this->security = $security; | ||||
|     } | ||||
|  | ||||
|     public function buildMenu($menuId, MenuItem $menu, array $parameters) | ||||
| @@ -41,12 +47,14 @@ class AccompanyingCourseMenuBuilder implements LocalMenuBuilderInterface | ||||
|         $period = $parameters['accompanyingCourse']; | ||||
|  | ||||
|         if (AccompanyingPeriod::STEP_DRAFT !== $period->getStep()) { | ||||
|             $menu->addChild($this->translator->trans('Calendar'), [ | ||||
|                 'route' => 'chill_calendar_calendar_list', | ||||
|                 'routeParameters' => [ | ||||
|                     'accompanying_period_id' => $period->getId(), | ||||
|                 ], ]) | ||||
|                 ->setExtras(['order' => 35]); | ||||
|             if ($this->security->isGranted(AccompanyingPeriodVoter::SEE, $period)) { | ||||
|                 $menu->addChild($this->translator->trans('Calendar'), [ | ||||
|                     'route' => 'chill_calendar_calendar_list', | ||||
|                     'routeParameters' => [ | ||||
|                         'accompanying_period_id' => $period->getId(), | ||||
|                     ], ]) | ||||
|                     ->setExtras(['order' => 35]); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -15,19 +15,13 @@ use Chill\AMLI\FamilyMembersBundle\Security\Voter\FamilyMemberVoter; | ||||
| use Chill\MainBundle\Routing\LocalMenuBuilderInterface; | ||||
| use Knp\Menu\MenuItem; | ||||
| use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface; | ||||
| use Symfony\Component\Translation\TranslatorInterface; | ||||
| use Symfony\Contracts\Translation\TranslatorInterface; | ||||
|  | ||||
| class UserMenuBuilder implements LocalMenuBuilderInterface | ||||
| { | ||||
|     /** | ||||
|      * @var AuthorizationCheckerInterface | ||||
|      */ | ||||
|     protected $authorizationChecker; | ||||
|     protected AuthorizationCheckerInterface $authorizationChecker; | ||||
|  | ||||
|     /** | ||||
|      * @var TranslatorInterface | ||||
|      */ | ||||
|     protected $translator; | ||||
|     protected TranslatorInterface $translator; | ||||
|  | ||||
|     public function __construct( | ||||
|         AuthorizationCheckerInterface $authorizationChecker, | ||||
|   | ||||
| @@ -12,11 +12,23 @@ declare(strict_types=1); | ||||
| namespace Chill\MainBundle\Routing\MenuBuilder; | ||||
|  | ||||
| use Knp\Menu\MenuItem; | ||||
| use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface; | ||||
|  | ||||
| class LocationMenuBuilder implements \Chill\MainBundle\Routing\LocalMenuBuilderInterface | ||||
| { | ||||
|     private AuthorizationCheckerInterface $authorizationChecker; | ||||
|  | ||||
|     public function __construct(AuthorizationCheckerInterface $authorizationChecker) | ||||
|     { | ||||
|         $this->authorizationChecker = $authorizationChecker; | ||||
|     } | ||||
|  | ||||
|     public function buildMenu($menuId, MenuItem $menu, array $parameters) | ||||
|     { | ||||
|         if (!$this->authorizationChecker->isGranted('ROLE_ADMIN')) { | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         $menu->addChild('Location type list', [ | ||||
|             'route' => 'chill_crud_main_location_type_index', | ||||
|         ])->setExtras(['order' => 205]); | ||||
|   | ||||
| @@ -12,11 +12,23 @@ declare(strict_types=1); | ||||
| namespace Chill\MainBundle\Routing\MenuBuilder; | ||||
|  | ||||
| use Knp\Menu\MenuItem; | ||||
| use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface; | ||||
|  | ||||
| class PermissionMenuBuilder implements \Chill\MainBundle\Routing\LocalMenuBuilderInterface | ||||
| { | ||||
|     private AuthorizationCheckerInterface $authorizationChecker; | ||||
|  | ||||
|     public function __construct(AuthorizationCheckerInterface $authorizationChecker) | ||||
|     { | ||||
|         $this->authorizationChecker = $authorizationChecker; | ||||
|     } | ||||
|  | ||||
|     public function buildMenu($menuId, MenuItem $menu, array $parameters) | ||||
|     { | ||||
|         if (!$this->authorizationChecker->isGranted('ROLE_ADMIN')) { | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         $menu->addChild('Permissions group list', [ | ||||
|             'route' => 'admin_permissionsgroup', | ||||
|         ])->setExtras([ | ||||
|   | ||||
| @@ -15,22 +15,16 @@ use Chill\MainBundle\Routing\LocalMenuBuilderInterface; | ||||
| use Chill\MainBundle\Security\Authorization\ChillExportVoter; | ||||
| use Knp\Menu\MenuItem; | ||||
| use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface; | ||||
| use Symfony\Component\Translation\TranslatorInterface; | ||||
| use Symfony\Contracts\Translation\TranslatorInterface; | ||||
|  | ||||
| /** | ||||
|  * Class SectionMenuBuilder. | ||||
|  */ | ||||
| class SectionMenuBuilder implements LocalMenuBuilderInterface | ||||
| { | ||||
|     /** | ||||
|      * @var AuthorizationCheckerInterface | ||||
|      */ | ||||
|     protected $authorizationChecker; | ||||
|     protected AuthorizationCheckerInterface $authorizationChecker; | ||||
|  | ||||
|     /** | ||||
|      * @var TranslatorInterface | ||||
|      */ | ||||
|     protected $translator; | ||||
|     protected TranslatorInterface $translator; | ||||
|  | ||||
|     /** | ||||
|      * SectionMenuBuilder constructor. | ||||
| @@ -46,22 +40,24 @@ class SectionMenuBuilder implements LocalMenuBuilderInterface | ||||
|      */ | ||||
|     public function buildMenu($menuId, MenuItem $menu, array $parameters) | ||||
|     { | ||||
|         $menu->addChild($this->translator->trans('Homepage'), [ | ||||
|             'route' => 'chill_main_homepage', | ||||
|         ]) | ||||
|             ->setExtras([ | ||||
|                 'icons' => ['home'], | ||||
|                 'order' => 0, | ||||
|             ]); | ||||
|         if (!$this->authorizationChecker->isGranted('ROLE_USER')) { | ||||
|             $menu->addChild($this->translator->trans('Homepage'), [ | ||||
|                 'route' => 'chill_main_homepage', | ||||
|             ]) | ||||
|                 ->setExtras([ | ||||
|                     'icons' => ['home'], | ||||
|                     'order' => 0, | ||||
|                 ]); | ||||
|  | ||||
|         $menu->addChild($this->translator->trans('Global timeline'), [ | ||||
|             'route' => 'chill_center_timeline', | ||||
|         ]) | ||||
|             ->setExtras( | ||||
|                 [ | ||||
|                     'order' => 10, | ||||
|                 ] | ||||
|             ); | ||||
|             $menu->addChild($this->translator->trans('Global timeline'), [ | ||||
|                 'route' => 'chill_center_timeline', | ||||
|             ]) | ||||
|                 ->setExtras( | ||||
|                     [ | ||||
|                         'order' => 10, | ||||
|                     ] | ||||
|                 ); | ||||
|         } | ||||
|  | ||||
|         if ($this->authorizationChecker->isGranted(ChillExportVoter::EXPORT)) { | ||||
|             $menu->addChild($this->translator->trans('Export Menu'), [ | ||||
|   | ||||
| @@ -15,11 +15,14 @@ use Chill\MainBundle\Entity\User; | ||||
| use Chill\MainBundle\Notification\Counter\NotificationByUserCounter; | ||||
| use Chill\MainBundle\Routing\LocalMenuBuilderInterface; | ||||
| use Chill\MainBundle\Workflow\Counter\WorkflowByUserCounter; | ||||
| use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface; | ||||
| use Symfony\Component\Security\Core\Security; | ||||
| use Symfony\Contracts\Translation\TranslatorInterface; | ||||
|  | ||||
| class UserMenuBuilder implements LocalMenuBuilderInterface | ||||
| { | ||||
|     private AuthorizationCheckerInterface $authorizationChecker; | ||||
|  | ||||
|     private NotificationByUserCounter $notificationByUserCounter; | ||||
|  | ||||
|     private Security $security; | ||||
| @@ -32,16 +35,22 @@ class UserMenuBuilder implements LocalMenuBuilderInterface | ||||
|         NotificationByUserCounter $notificationByUserCounter, | ||||
|         WorkflowByUserCounter $workflowByUserCounter, | ||||
|         Security $security, | ||||
|         TranslatorInterface $translator | ||||
|         TranslatorInterface $translator, | ||||
|         AuthorizationCheckerInterface $authorizationChecker | ||||
|     ) { | ||||
|         $this->notificationByUserCounter = $notificationByUserCounter; | ||||
|         $this->workflowByUserCounter = $workflowByUserCounter; | ||||
|         $this->security = $security; | ||||
|         $this->translator = $translator; | ||||
|         $this->authorizationChecker = $authorizationChecker; | ||||
|     } | ||||
|  | ||||
|     public function buildMenu($menuId, \Knp\Menu\MenuItem $menu, array $parameters) | ||||
|     { | ||||
|         if (!$this->authorizationChecker->isGranted('ROLE_USER')) { | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         $user = $this->security->getUser(); | ||||
|  | ||||
|         if ($user instanceof User) { | ||||
|   | ||||
| @@ -19,6 +19,7 @@ use Chill\PersonBundle\Entity\Person; | ||||
| use Chill\PersonBundle\Form\HouseholdMemberType; | ||||
| use Chill\PersonBundle\Household\MembersEditor; | ||||
| use Chill\PersonBundle\Repository\AccompanyingPeriodRepository; | ||||
| use Chill\PersonBundle\Security\Authorization\HouseholdVoter; | ||||
| use Chill\PersonBundle\Security\Authorization\PersonVoter; | ||||
| use Symfony\Component\HttpFoundation\Exception\BadRequestException; | ||||
| use Symfony\Component\HttpFoundation\Request; | ||||
| @@ -26,7 +27,7 @@ use Symfony\Component\HttpFoundation\Response; | ||||
| use Symfony\Component\Routing\Annotation\Route; | ||||
| use Symfony\Component\Routing\Generator\UrlGeneratorInterface; | ||||
| use Symfony\Component\Serializer\Exception; | ||||
| use Symfony\Component\Translation\TranslatorInterface; | ||||
| use Symfony\Contracts\Translation\TranslatorInterface; | ||||
|  | ||||
| use function count; | ||||
|  | ||||
| @@ -56,7 +57,7 @@ class HouseholdMemberController extends ApiController | ||||
|      */ | ||||
|     public function editMembership(Request $request, HouseholdMember $member): Response | ||||
|     { | ||||
|         // TODO ACL | ||||
|         $this->denyAccessUnlessGranted(HouseholdVoter::EDIT, $member); | ||||
|  | ||||
|         $form = $this->createForm(HouseholdMemberType::class, $member, [ | ||||
|             'validation_groups' => ['household_memberships'], | ||||
|   | ||||
| @@ -29,10 +29,7 @@ class AccompanyingCourseMenuBuilder implements LocalMenuBuilderInterface | ||||
|  | ||||
|     protected Security $security; | ||||
|  | ||||
|     /** | ||||
|      * @var TranslatorInterface | ||||
|      */ | ||||
|     protected $translator; | ||||
|     protected TranslatorInterface $translator; | ||||
|  | ||||
|     public function __construct(TranslatorInterface $translator, Registry $registry, Security $security) | ||||
|     { | ||||
| @@ -46,12 +43,14 @@ class AccompanyingCourseMenuBuilder implements LocalMenuBuilderInterface | ||||
|         /** @var AccompanyingPeriod $period */ | ||||
|         $period = $parameters['accompanyingCourse']; | ||||
|  | ||||
|         $menu->addChild($this->translator->trans('Resume Accompanying Course'), [ | ||||
|             'route' => 'chill_person_accompanying_course_index', | ||||
|             'routeParameters' => [ | ||||
|                 'accompanying_period_id' => $period->getId(), | ||||
|             ], ]) | ||||
|             ->setExtras(['order' => 10]); | ||||
|         if ($this->security->isGranted(AccompanyingPeriodVoter::SEE, $period)) { | ||||
|             $menu->addChild($this->translator->trans('Resume Accompanying Course'), [ | ||||
|                 'route' => 'chill_person_accompanying_course_index', | ||||
|                 'routeParameters' => [ | ||||
|                     'accompanying_period_id' => $period->getId(), | ||||
|                 ], ]) | ||||
|                 ->setExtras(['order' => 10]); | ||||
|         } | ||||
|  | ||||
|         if ($this->security->isGranted(AccompanyingPeriodVoter::EDIT, $period)) { | ||||
|             $menu->addChild($this->translator->trans('Edit Accompanying Course'), [ | ||||
| @@ -94,22 +93,24 @@ class AccompanyingCourseMenuBuilder implements LocalMenuBuilderInterface | ||||
|  | ||||
|         $workflow = $this->registry->get($period, 'accompanying_period_lifecycle'); | ||||
|  | ||||
|         if (null !== $period->getClosingDate()) { | ||||
|             $menu->addChild($this->translator->trans('Re-open accompanying course'), [ | ||||
|                 'route' => 'chill_person_accompanying_course_reopen', | ||||
|                 'routeParameters' => [ | ||||
|                     'accompanying_period_id' => $period->getId(), | ||||
|                 ], ]) | ||||
|                 ->setExtras(['order' => 99998]); | ||||
|         } | ||||
|         if ($this->security->isGranted(AccompanyingPeriodVoter::EDIT, $period)) { | ||||
|             if (null !== $period->getClosingDate()) { | ||||
|                 $menu->addChild($this->translator->trans('Re-open accompanying course'), [ | ||||
|                     'route' => 'chill_person_accompanying_course_reopen', | ||||
|                     'routeParameters' => [ | ||||
|                         'accompanying_period_id' => $period->getId(), | ||||
|                     ], ]) | ||||
|                     ->setExtras(['order' => 99998]); | ||||
|             } | ||||
|  | ||||
|         if ($workflow->can($period, 'close')) { | ||||
|             $menu->addChild($this->translator->trans('Close Accompanying Course'), [ | ||||
|                 'route' => 'chill_person_accompanying_course_close', | ||||
|                 'routeParameters' => [ | ||||
|                     'accompanying_period_id' => $period->getId(), | ||||
|                 ], ]) | ||||
|                 ->setExtras(['order' => 99999]); | ||||
|             if ($workflow->can($period, 'close')) { | ||||
|                 $menu->addChild($this->translator->trans('Close Accompanying Course'), [ | ||||
|                     'route' => 'chill_person_accompanying_course_close', | ||||
|                     'routeParameters' => [ | ||||
|                         'accompanying_period_id' => $period->getId(), | ||||
|                     ], ]) | ||||
|                     ->setExtras(['order' => 99999]); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -12,7 +12,9 @@ declare(strict_types=1); | ||||
| namespace Chill\PersonBundle\Menu; | ||||
|  | ||||
| use Chill\MainBundle\Routing\LocalMenuBuilderInterface; | ||||
| use Chill\PersonBundle\Security\Authorization\HouseholdVoter; | ||||
| use Knp\Menu\MenuItem; | ||||
| use Symfony\Component\Security\Core\Security; | ||||
| use Symfony\Contracts\Translation\TranslatorInterface; | ||||
|  | ||||
| class HouseholdMenuBuilder implements LocalMenuBuilderInterface | ||||
| @@ -22,9 +24,12 @@ class HouseholdMenuBuilder implements LocalMenuBuilderInterface | ||||
|      */ | ||||
|     protected $translator; | ||||
|  | ||||
|     public function __construct(TranslatorInterface $translator) | ||||
|     private $security; | ||||
|  | ||||
|     public function __construct(TranslatorInterface $translator, Security $security) | ||||
|     { | ||||
|         $this->translator = $translator; | ||||
|         $this->security = $security; | ||||
|     } | ||||
|  | ||||
|     public function buildMenu($menuId, MenuItem $menu, array $parameters): void | ||||
| @@ -32,40 +37,46 @@ class HouseholdMenuBuilder implements LocalMenuBuilderInterface | ||||
|         /** @var \Chill\PersonBundle\Entity\Household\Household $household */ | ||||
|         $household = $parameters['household']; | ||||
|  | ||||
|         $menu->addChild($this->translator->trans('household.Household summary'), [ | ||||
|             'route' => 'chill_person_household_summary', | ||||
|             'routeParameters' => [ | ||||
|                 'household_id' => $household->getId(), | ||||
|             ], ]) | ||||
|             ->setExtras(['order' => 10]); | ||||
|         if ($this->security->isGranted(HouseholdVoter::SEE, $household)) { | ||||
|             $menu->addChild($this->translator->trans('household.Household summary'), [ | ||||
|                 'route' => 'chill_person_household_summary', | ||||
|                 'routeParameters' => [ | ||||
|                     'household_id' => $household->getId(), | ||||
|                 ], ]) | ||||
|                 ->setExtras(['order' => 10]); | ||||
|  | ||||
|         $menu->addChild($this->translator->trans('household.Relationship'), [ | ||||
|             'route' => 'chill_person_household_relationship', | ||||
|             'routeParameters' => [ | ||||
|                 'household_id' => $household->getId(), | ||||
|             ], ]) | ||||
|             ->setExtras(['order' => 15]); | ||||
|             $menu->addChild($this->translator->trans('household.Relationship'), [ | ||||
|                 'route' => 'chill_person_household_relationship', | ||||
|                 'routeParameters' => [ | ||||
|                     'household_id' => $household->getId(), | ||||
|                 ], ]) | ||||
|                 ->setExtras(['order' => 15]); | ||||
|         } | ||||
|  | ||||
|         $menu->addChild($this->translator->trans('household_composition.Compositions'), [ | ||||
|             'route' => 'chill_person_household_composition_index', | ||||
|             'routeParameters' => [ | ||||
|                 'id' => $household->getId(), | ||||
|             ], ]) | ||||
|             ->setExtras(['order' => 17]); | ||||
|         if ($this->security->isGranted(HouseholdVoter::EDIT, $household)) { | ||||
|             $menu->addChild($this->translator->trans('household_composition.Compositions'), [ | ||||
|                 'route' => 'chill_person_household_composition_index', | ||||
|                 'routeParameters' => [ | ||||
|                     'id' => $household->getId(), | ||||
|                 ], ]) | ||||
|                 ->setExtras(['order' => 17]); | ||||
|         } | ||||
|  | ||||
|         $menu->addChild($this->translator->trans('household.Accompanying period'), [ | ||||
|             'route' => 'chill_person_household_accompanying_period', | ||||
|             'routeParameters' => [ | ||||
|                 'household_id' => $household->getId(), | ||||
|             ], ]) | ||||
|             ->setExtras(['order' => 20]); | ||||
|         if ($this->security->isGranted(HouseholdVoter::SEE, $household)) { | ||||
|             $menu->addChild($this->translator->trans('household.Accompanying period'), [ | ||||
|                 'route' => 'chill_person_household_accompanying_period', | ||||
|                 'routeParameters' => [ | ||||
|                     'household_id' => $household->getId(), | ||||
|                 ], ]) | ||||
|                 ->setExtras(['order' => 20]); | ||||
|  | ||||
|         $menu->addChild($this->translator->trans('household.Addresses'), [ | ||||
|             'route' => 'chill_person_household_addresses', | ||||
|             'routeParameters' => [ | ||||
|                 'household_id' => $household->getId(), | ||||
|             ], ]) | ||||
|             ->setExtras(['order' => 30]); | ||||
|             $menu->addChild($this->translator->trans('household.Addresses'), [ | ||||
|                 'route' => 'chill_person_household_addresses', | ||||
|                 'routeParameters' => [ | ||||
|                     'household_id' => $household->getId(), | ||||
|                 ], ]) | ||||
|                 ->setExtras(['order' => 30]); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static function getMenuIds(): array | ||||
|   | ||||
| @@ -13,6 +13,7 @@ namespace Chill\PersonBundle\Menu; | ||||
|  | ||||
| use Chill\MainBundle\Routing\LocalMenuBuilderInterface; | ||||
| use Chill\PersonBundle\Security\Authorization\AccompanyingPeriodVoter; | ||||
| use Chill\PersonBundle\Security\Authorization\PersonVoter; | ||||
| use Knp\Menu\MenuItem; | ||||
| use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface; | ||||
| use Symfony\Component\Security\Core\Security; | ||||
| @@ -33,10 +34,7 @@ class PersonMenuBuilder implements LocalMenuBuilderInterface | ||||
|      */ | ||||
|     protected $showAccompanyingPeriod; | ||||
|  | ||||
|     /** | ||||
|      * @var TranslatorInterface | ||||
|      */ | ||||
|     protected $translator; | ||||
|     protected TranslatorInterface $translator; | ||||
|  | ||||
|     private Security $security; | ||||
|  | ||||
| @@ -52,45 +50,46 @@ class PersonMenuBuilder implements LocalMenuBuilderInterface | ||||
|  | ||||
|     public function buildMenu($menuId, MenuItem $menu, array $parameters) | ||||
|     { | ||||
|         $menu->addChild($this->translator->trans('Person details'), [ | ||||
|             'route' => 'chill_person_view', | ||||
|             'routeParameters' => [ | ||||
|                 'person_id' => $parameters['person']->getId(), | ||||
|             ], | ||||
|         ]) | ||||
|             ->setExtras([ | ||||
|                 'order' => 50, | ||||
|             ]); | ||||
|         if ($this->security->isGranted(PersonVoter::SEE, $parameters['person'])) { | ||||
|             $menu->addChild($this->translator->trans('Person details'), [ | ||||
|                 'route' => 'chill_person_view', | ||||
|                 'routeParameters' => [ | ||||
|                     'person_id' => $parameters['person']->getId(), | ||||
|                 ], | ||||
|             ]) | ||||
|                 ->setExtras([ | ||||
|                     'order' => 50, | ||||
|                 ]); | ||||
|             $menu->addChild($this->translator->trans('Residential addresses'), [ | ||||
|                 'route' => 'chill_person_residential_address_list', | ||||
|                 'routeParameters' => [ | ||||
|                     'id' => $parameters['person']->getId(), | ||||
|                 ], | ||||
|             ]) | ||||
|                 ->setExtras([ | ||||
|                     'order' => 60, | ||||
|                 ]); | ||||
|  | ||||
|         $menu->addChild($this->translator->trans('Residential addresses'), [ | ||||
|             'route' => 'chill_person_residential_address_list', | ||||
|             'routeParameters' => [ | ||||
|                 'id' => $parameters['person']->getId(), | ||||
|             ], | ||||
|         ]) | ||||
|             ->setExtras([ | ||||
|                 'order' => 60, | ||||
|             ]); | ||||
|             $menu->addChild($this->translator->trans('household.person history'), [ | ||||
|                 'route' => 'chill_person_household_person_history', | ||||
|                 'routeParameters' => [ | ||||
|                     'person_id' => $parameters['person']->getId(), | ||||
|                 ], | ||||
|             ]) | ||||
|                 ->setExtras([ | ||||
|                     'order' => 99999, | ||||
|                 ]); | ||||
|  | ||||
|         $menu->addChild($this->translator->trans('household.person history'), [ | ||||
|             'route' => 'chill_person_household_person_history', | ||||
|             'routeParameters' => [ | ||||
|                 'person_id' => $parameters['person']->getId(), | ||||
|             ], | ||||
|         ]) | ||||
|             ->setExtras([ | ||||
|                 'order' => 99999, | ||||
|             ]); | ||||
|  | ||||
|         $menu->addChild($this->translator->trans('Person duplicate'), [ | ||||
|             'route' => 'chill_person_duplicate_view', | ||||
|             'routeParameters' => [ | ||||
|                 'person_id' => $parameters['person']->getId(), | ||||
|             ], | ||||
|         ]) | ||||
|             ->setExtras([ | ||||
|                 'order' => 99999, | ||||
|             ]); | ||||
|             $menu->addChild($this->translator->trans('Person duplicate'), [ | ||||
|                 'route' => 'chill_person_duplicate_view', | ||||
|                 'routeParameters' => [ | ||||
|                     'person_id' => $parameters['person']->getId(), | ||||
|                 ], | ||||
|             ]) | ||||
|                 ->setExtras([ | ||||
|                     'order' => 99999, | ||||
|                 ]); | ||||
|         } | ||||
|  | ||||
|         if ( | ||||
|             'visible' === $this->showAccompanyingPeriod | ||||
| @@ -107,15 +106,17 @@ class PersonMenuBuilder implements LocalMenuBuilderInterface | ||||
|                 ]); | ||||
|         } | ||||
|  | ||||
|         $menu->addChild($this->translator->trans('person_resources_menu'), [ | ||||
|             'route' => 'chill_person_resource_list', | ||||
|             'routeParameters' => [ | ||||
|                 'person_id' => $parameters['person']->getId(), | ||||
|             ], | ||||
|         ]) | ||||
|             ->setExtras([ | ||||
|                 'order' => 99999, | ||||
|             ]); | ||||
|         if ($this->security->isGranted(PersonVoter::SEE, $parameters['person'])) { | ||||
|             $menu->addChild($this->translator->trans('person_resources_menu'), [ | ||||
|                 'route' => 'chill_person_resource_list', | ||||
|                 'routeParameters' => [ | ||||
|                     'person_id' => $parameters['person']->getId(), | ||||
|                 ], | ||||
|             ]) | ||||
|                 ->setExtras([ | ||||
|                     'order' => 99999, | ||||
|                 ]); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static function getMenuIds(): array | ||||
|   | ||||
| @@ -12,6 +12,7 @@ declare(strict_types=1); | ||||
| namespace Chill\PersonBundle\Menu; | ||||
|  | ||||
| use Chill\MainBundle\Routing\LocalMenuBuilderInterface; | ||||
| use Chill\PersonBundle\Security\Authorization\AccompanyingPeriodVoter; | ||||
| use Chill\PersonBundle\Security\Authorization\PersonVoter; | ||||
| use Knp\Menu\MenuItem; | ||||
| use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface; | ||||
| @@ -56,13 +57,15 @@ class SectionMenuBuilder implements LocalMenuBuilderInterface | ||||
|                 ]); | ||||
|         } | ||||
|  | ||||
|         $menu->addChild($this->translator->trans('Create an accompanying course'), [ | ||||
|             'route' => 'chill_person_accompanying_course_new', | ||||
|         ]) | ||||
|             ->setExtras([ | ||||
|                 'order' => 11, | ||||
|                 'icons' => ['plus'], | ||||
|             ]); | ||||
|         if ($this->authorizationChecker->isGranted(AccompanyingPeriodVoter::CREATE)) { | ||||
|             $menu->addChild($this->translator->trans('Create an accompanying course'), [ | ||||
|                 'route' => 'chill_person_accompanying_course_new', | ||||
|             ]) | ||||
|                 ->setExtras([ | ||||
|                     'order' => 11, | ||||
|                     'icons' => ['plus'], | ||||
|                 ]); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static function getMenuIds(): array | ||||
|   | ||||
| @@ -16,19 +16,13 @@ use Chill\TaskBundle\Security\Authorization\TaskVoter; | ||||
| use Knp\Menu\MenuItem; | ||||
| use LogicException; | ||||
| use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface; | ||||
| use Symfony\Component\Translation\TranslatorInterface; | ||||
| use Symfony\Contracts\Translation\TranslatorInterface; | ||||
|  | ||||
| class MenuBuilder implements LocalMenuBuilderInterface | ||||
| { | ||||
|     /** | ||||
|      * @var AuthorizationCheckerInterface | ||||
|      */ | ||||
|     protected $authorizationChecker; | ||||
|     protected AuthorizationCheckerInterface $authorizationChecker; | ||||
|  | ||||
|     /** | ||||
|      * @var TranslatorInterface | ||||
|      */ | ||||
|     protected $translator; | ||||
|     protected TranslatorInterface $translator; | ||||
|  | ||||
|     public function __construct( | ||||
|         AuthorizationCheckerInterface $authorizationChecker, | ||||
|   | ||||
| @@ -15,19 +15,13 @@ use Chill\MainBundle\Routing\LocalMenuBuilderInterface; | ||||
| use Chill\TaskBundle\Security\Authorization\TaskVoter; | ||||
| use Knp\Menu\MenuItem; | ||||
| use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface; | ||||
| use Symfony\Component\Translation\TranslatorInterface; | ||||
| use Symfony\Contracts\Translation\TranslatorInterface; | ||||
|  | ||||
| class SectionMenuBuilder implements LocalMenuBuilderInterface | ||||
| { | ||||
|     /** | ||||
|      * @var AuthorizationCheckerInterface | ||||
|      */ | ||||
|     public $authorizationChecker; | ||||
|     public AuthorizationCheckerInterface $authorizationChecker; | ||||
|  | ||||
|     /** | ||||
|      * @var TranslatorInterface | ||||
|      */ | ||||
|     public $translator; | ||||
|     public TranslatorInterface $translator; | ||||
|  | ||||
|     public function __construct( | ||||
|         AuthorizationCheckerInterface $authorizationChecker, | ||||
|   | ||||
| @@ -17,29 +17,17 @@ use Chill\TaskBundle\Templating\UI\CountNotificationTask; | ||||
| use Knp\Menu\MenuItem; | ||||
| use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface; | ||||
| use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface; | ||||
| use Symfony\Component\Translation\TranslatorInterface; | ||||
| use Symfony\Contracts\Translation\TranslatorInterface; | ||||
|  | ||||
| class UserMenuBuilder implements LocalMenuBuilderInterface | ||||
| { | ||||
|     /** | ||||
|      * @var AuthorizationCheckerInterface | ||||
|      */ | ||||
|     public $authorizationChecker; | ||||
|     public AuthorizationCheckerInterface $authorizationChecker; | ||||
|  | ||||
|     /** | ||||
|      * @var CountNotificationTask | ||||
|      */ | ||||
|     public $counter; | ||||
|     public CountNotificationTask $counter; | ||||
|  | ||||
|     /** | ||||
|      * @var TokenStorageInterface | ||||
|      */ | ||||
|     public $tokenStorage; | ||||
|     public TokenStorageInterface $tokenStorage; | ||||
|  | ||||
|     /** | ||||
|      * @var TranslatorInterface | ||||
|      */ | ||||
|     public $translator; | ||||
|     public TranslatorInterface $translator; | ||||
|  | ||||
|     public function __construct( | ||||
|         CountNotificationTask $counter, | ||||
|   | ||||
| @@ -15,22 +15,16 @@ use Chill\MainBundle\Routing\LocalMenuBuilderInterface; | ||||
| use Chill\ThirdPartyBundle\Security\Voter\ThirdPartyVoter; | ||||
| use Knp\Menu\MenuItem; | ||||
| use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface; | ||||
| use Symfony\Component\Translation\TranslatorInterface; | ||||
| use Symfony\Contracts\Translation\TranslatorInterface; | ||||
|  | ||||
| /** | ||||
|  * Add an entry in section to go to third party index page. | ||||
|  */ | ||||
| class MenuBuilder implements LocalMenuBuilderInterface | ||||
| { | ||||
|     /** | ||||
|      * @var AuthorizationCheckerInterface | ||||
|      */ | ||||
|     protected $authorizationChecker; | ||||
|     protected AuthorizationCheckerInterface $authorizationChecker; | ||||
|  | ||||
|     /** | ||||
|      * @var TranslatorInterface | ||||
|      */ | ||||
|     protected $translator; | ||||
|     protected TranslatorInterface $translator; | ||||
|  | ||||
|     public function __construct( | ||||
|         AuthorizationCheckerInterface $authorizationChecker, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user