mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-07 18:44:08 +00:00
Merge branch 'fix_parcours_creation_rights_in_household' into 'master'
Fix parcours creation rights in household See merge request Chill-Projet/chill-bundles!560
This commit is contained in:
commit
37e92ca58d
7
.changes/unreleased/Security-20230607-174702.yaml
Normal file
7
.changes/unreleased/Security-20230607-174702.yaml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
kind: Security
|
||||||
|
body: Rights are checked for display of 'accompanying period' tab in household menu.
|
||||||
|
Rights are also checked for creation of 'accompanying period' from within household
|
||||||
|
context
|
||||||
|
time: 2023-06-07T17:47:02.488819553+02:00
|
||||||
|
custom:
|
||||||
|
Issue: "105"
|
@ -12,7 +12,9 @@ declare(strict_types=1);
|
|||||||
namespace Chill\PersonBundle\Menu;
|
namespace Chill\PersonBundle\Menu;
|
||||||
|
|
||||||
use Chill\MainBundle\Routing\LocalMenuBuilderInterface;
|
use Chill\MainBundle\Routing\LocalMenuBuilderInterface;
|
||||||
|
use Chill\PersonBundle\Security\Authorization\AccompanyingPeriodVoter;
|
||||||
use Knp\Menu\MenuItem;
|
use Knp\Menu\MenuItem;
|
||||||
|
use Symfony\Component\Security\Core\Security;
|
||||||
use Symfony\Contracts\Translation\TranslatorInterface;
|
use Symfony\Contracts\Translation\TranslatorInterface;
|
||||||
|
|
||||||
class HouseholdMenuBuilder implements LocalMenuBuilderInterface
|
class HouseholdMenuBuilder implements LocalMenuBuilderInterface
|
||||||
@ -22,9 +24,12 @@ class HouseholdMenuBuilder implements LocalMenuBuilderInterface
|
|||||||
*/
|
*/
|
||||||
protected $translator;
|
protected $translator;
|
||||||
|
|
||||||
public function __construct(TranslatorInterface $translator)
|
private Security $security;
|
||||||
|
|
||||||
|
public function __construct(TranslatorInterface $translator, Security $security)
|
||||||
{
|
{
|
||||||
$this->translator = $translator;
|
$this->translator = $translator;
|
||||||
|
$this->security = $security;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function buildMenu($menuId, MenuItem $menu, array $parameters): void
|
public function buildMenu($menuId, MenuItem $menu, array $parameters): void
|
||||||
@ -53,12 +58,14 @@ class HouseholdMenuBuilder implements LocalMenuBuilderInterface
|
|||||||
], ])
|
], ])
|
||||||
->setExtras(['order' => 17]);
|
->setExtras(['order' => 17]);
|
||||||
|
|
||||||
$menu->addChild($this->translator->trans('household.Accompanying period'), [
|
if ($this->security->isGranted(AccompanyingPeriodVoter::SEE, $parameters['household'])) {
|
||||||
'route' => 'chill_person_household_accompanying_period',
|
$menu->addChild($this->translator->trans('household.Accompanying period'), [
|
||||||
'routeParameters' => [
|
'route' => 'chill_person_household_accompanying_period',
|
||||||
'household_id' => $household->getId(),
|
'routeParameters' => [
|
||||||
], ])
|
'household_id' => $household->getId(),
|
||||||
->setExtras(['order' => 20]);
|
],])
|
||||||
|
->setExtras(['order' => 20]);
|
||||||
|
}
|
||||||
|
|
||||||
$menu->addChild($this->translator->trans('household.Addresses'), [
|
$menu->addChild($this->translator->trans('household.Addresses'), [
|
||||||
'route' => 'chill_person_household_addresses',
|
'route' => 'chill_person_household_addresses',
|
||||||
|
@ -40,13 +40,14 @@
|
|||||||
{{ 'Household summary'|trans }}
|
{{ 'Household summary'|trans }}
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
{# TODO: add ACL to check if user is allowed to edit household? #}
|
{% if is_granted('CHILL_PERSON_HOUSEHOLD_EDIT', household) %}
|
||||||
<li>
|
<li>
|
||||||
<a class="btn btn-create"
|
<a class="btn btn-create"
|
||||||
href="{{ path ('chill_household_accompanying_course_new', {'household_id' : household.id } ) }}" role="button">
|
href="{{ path ('chill_household_accompanying_course_new', {'household_id' : household.id } ) }}" role="button">
|
||||||
{{ 'Create an accompanying period'|trans }}
|
{{ 'Create an accompanying period'|trans }}
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
{% endif %}
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user