diff --git a/src/Bundle/ChillPersonBundle/Security/Authorization/AccompanyingPeriodVoter.php b/src/Bundle/ChillPersonBundle/Security/Authorization/AccompanyingPeriodVoter.php index 3915c764a..117a59876 100644 --- a/src/Bundle/ChillPersonBundle/Security/Authorization/AccompanyingPeriodVoter.php +++ b/src/Bundle/ChillPersonBundle/Security/Authorization/AccompanyingPeriodVoter.php @@ -33,6 +33,7 @@ class AccompanyingPeriodVoter extends AbstractChillVoter implements ProvideRoleH self::DELETE, self::FULL, self::TOGGLE_CONFIDENTIAL_ALL, + self::TOGGLE_URGENCY ]; public const CREATE = 'CHILL_PERSON_ACCOMPANYING_PERIOD_CREATE'; @@ -61,6 +62,11 @@ class AccompanyingPeriodVoter extends AbstractChillVoter implements ProvideRoleH * Right to toggle confidentiality. */ public const TOGGLE_CONFIDENTIAL_ALL = 'CHILL_PERSON_ACCOMPANYING_PERIOD_TOGGLE_CONFIDENTIAL_ALL'; + /** + * Right to toggle urgency of parcours. + */ + + public const TOGGLE_URGENCY = 'CHILL_PERSON_ACCOMPANYING_PERIOD_TOGGLE_URGENCY'; private Security $security; @@ -132,6 +138,14 @@ class AccompanyingPeriodVoter extends AbstractChillVoter implements ProvideRoleH return $this->voterHelper->voteOnAttribute(self::TOGGLE_CONFIDENTIAL_ALL, $subject, $token); } + if (self::TOGGLE_URGENCY === $attribute) { + if ($subject->getUser() === $token->getUser()) { + return true; + } + + return $this->voterHelper->voteOnAttribute(self::TOGGLE_CONFIDENTIAL_ALL, $subject, $token); + } + // if confidential, only the referent can see it if ($subject->isConfidential()) { return $token->getUser() === $subject->getUser();