Merge remote-tracking branch 'origin/master' into feature/add-api-endpoint-for-permission

This commit is contained in:
2021-11-24 16:15:51 +01:00
7 changed files with 26 additions and 19 deletions

View File

@@ -3,7 +3,6 @@
{% if activities|length == 0 %}
<p class="chill-no-data-statement">
{{ "There isn't any activities."|trans }}
<a href="{{ path('chill_activity_activity_new', {'person_id': person_id, 'accompanying_period_id': accompanying_course_id}) }}" class="btn btn-sm btn-create"></a>
</p>
{% else %}

View File

@@ -36,12 +36,14 @@
{% include 'ChillActivityBundle:Activity:list.html.twig' with {'context': 'person'} %}
{% if is_granted('CHILL_ACTIVITY_CREATE', person) %}
<ul class="record_actions sticky-form-buttons">
<li>
<a href="{{ path('chill_activity_activity_new', {'person_id': person_id, 'accompanying_period_id': accompanying_course_id}) }}"
class="btn btn-create disabled" tabindex="-1" role="button" aria-disabled="true">{{ 'Add a new activity' | trans }}
class="btn btn-create" tabindex="-1" role="button" aria-disabled="true">{{ 'Create'|trans }}
</a>
</li>
</ul>
{% endif %}
{% endblock %}

View File

@@ -189,7 +189,7 @@ export default {
// TODO i18n
return `/fr/person/${id}/general`;
} else if (type === 'thirdparty') {
return `/fr/thirdparty/thirdparty/${id}/show`;
return `/fr/3party/3party/${id}/view`;
}
}
}

View File

@@ -12,10 +12,11 @@ declare(strict_types=1);
namespace Validator\Person;
use Chill\MainBundle\Entity\Center;
use Chill\MainBundle\Security\Resolver\CenterResolverDispatcherInterface;
use Chill\MainBundle\Security\Resolver\CenterResolverManagerInterface;
use Chill\PersonBundle\Entity\Person;
use Chill\PersonBundle\Validator\Constraints\Person\PersonHasCenter;
use Chill\PersonBundle\Validator\Constraints\Person\PersonHasCenterValidator;
use Prophecy\Argument;
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
use Symfony\Component\Validator\Test\ConstraintValidatorTestCase;
@@ -52,9 +53,19 @@ class PersonHasCenterValidatorTest extends ConstraintValidatorTestCase
],
]);
$centerResolverDispatcher = $this->createMock(CenterResolverDispatcherInterface::class);
$prophecy = $this->prophesize(CenterResolverManagerInterface::class);
return new PersonHasCenterValidator($parameterBag, $centerResolverDispatcher);
$prophecy->resolveCenters(Argument::type(Person::class), Argument::any())->will(function ($args) {
$center = $args[0]->getCenter();
if ($center instanceof Center) {
return [$center];
}
return [];
});
return new PersonHasCenterValidator($parameterBag, $prophecy->reveal());
}
protected function getConstraint()

View File

@@ -11,7 +11,7 @@ declare(strict_types=1);
namespace Chill\PersonBundle\Validator\Constraints\Person;
use Chill\MainBundle\Security\Resolver\CenterResolverDispatcherInterface;
use Chill\MainBundle\Security\Resolver\CenterResolverManagerInterface;
use Chill\PersonBundle\Entity\Person;
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
use Symfony\Component\Validator\Constraint;
@@ -22,12 +22,12 @@ class PersonHasCenterValidator extends ConstraintValidator
{
private bool $centerRequired;
private CenterResolverDispatcherInterface $centerResolverDispatcher;
private CenterResolverManagerInterface $centerResolverManager;
public function __construct(ParameterBagInterface $parameterBag, CenterResolverDispatcherInterface $centerResolverDispatcher)
public function __construct(ParameterBagInterface $parameterBag, CenterResolverManagerInterface $centerResolverManager)
{
$this->centerRequired = $parameterBag->get('chill_person')['validation']['center_required'];
$this->centerResolverDispatcher = $centerResolverDispatcher;
$this->centerResolverManager = $centerResolverManager;
}
public function validate($person, Constraint $constraint)
@@ -40,7 +40,7 @@ class PersonHasCenterValidator extends ConstraintValidator
return;
}
if (null === $this->centerResolverDispatcher->resolveCenter($person)) {
if ([] === $this->centerResolverManager->resolveCenters($person)) {
$this
->context
->buildViolation($constraint->message)