fix creation of document when overriding center resolver

This commit is contained in:
Julien Fastré 2022-03-03 13:07:36 +01:00
parent 86bf0115dd
commit 6171b3411f
2 changed files with 9 additions and 32 deletions

View File

@ -98,7 +98,6 @@ class DocumentPersonController extends AbstractController
PersonDocumentType::class, PersonDocumentType::class,
$document, $document,
[ [
'center' => $document->getCenter(),
'role' => 'CHILL_PERSON_DOCUMENT_UPDATE', 'role' => 'CHILL_PERSON_DOCUMENT_UPDATE',
] ]
); );
@ -199,7 +198,6 @@ class DocumentPersonController extends AbstractController
$document->setDate(new DateTime('Now')); $document->setDate(new DateTime('Now'));
$form = $this->createForm(PersonDocumentType::class, $document, [ $form = $this->createForm(PersonDocumentType::class, $document, [
'center' => $document->getCenter(),
'role' => 'CHILL_PERSON_DOCUMENT_CREATE', 'role' => 'CHILL_PERSON_DOCUMENT_CREATE',
]); ]);
$form->handleRequest($request); $form->handleRequest($request);

View File

@ -13,15 +13,13 @@ namespace Chill\DocStoreBundle\Form;
use Chill\DocStoreBundle\Entity\Document; use Chill\DocStoreBundle\Entity\Document;
use Chill\DocStoreBundle\Entity\PersonDocument; use Chill\DocStoreBundle\Entity\PersonDocument;
use Chill\MainBundle\Entity\User;
use Chill\MainBundle\Form\Type\ChillDateType; use Chill\MainBundle\Form\Type\ChillDateType;
use Chill\MainBundle\Form\Type\ChillTextareaType; use Chill\MainBundle\Form\Type\ChillTextareaType;
use Chill\MainBundle\Form\Type\ScopePickerType; use Chill\MainBundle\Form\Type\ScopePickerType;
use Chill\MainBundle\Security\Authorization\AuthorizationHelper; use Chill\MainBundle\Security\Resolver\CenterResolverDispatcher;
use Chill\MainBundle\Security\Resolver\ScopeResolverDispatcher; use Chill\MainBundle\Security\Resolver\ScopeResolverDispatcher;
use Chill\MainBundle\Templating\TranslatableStringHelper; use Chill\MainBundle\Templating\TranslatableStringHelperInterface;
use Doctrine\ORM\EntityRepository; use Doctrine\ORM\EntityRepository;
use Doctrine\Persistence\ObjectManager;
use Symfony\Bridge\Doctrine\Form\Type\EntityType; use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface; use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\AbstractType;
@ -31,34 +29,16 @@ use Symfony\Component\OptionsResolver\OptionsResolver;
class PersonDocumentType extends AbstractType class PersonDocumentType extends AbstractType
{ {
/** private CenterResolverDispatcher $centerResolverDispatcher;
* @var AuthorizationHelper
*/
protected $authorizationHelper;
/**
* @var ObjectManager
*/
protected $om;
/**
* @var TranslatableStringHelper
*/
protected $translatableStringHelper;
/**
* the user running this form.
*
* @var User
*/
protected $user;
private ParameterBagInterface $parameterBag; private ParameterBagInterface $parameterBag;
private ScopeResolverDispatcher $scopeResolverDispatcher; private ScopeResolverDispatcher $scopeResolverDispatcher;
private TranslatableStringHelperInterface $translatableStringHelper;
public function __construct( public function __construct(
TranslatableStringHelper $translatableStringHelper, TranslatableStringHelperInterface $translatableStringHelper,
ScopeResolverDispatcher $scopeResolverDispatcher, ScopeResolverDispatcher $scopeResolverDispatcher,
ParameterBagInterface $parameterBag ParameterBagInterface $parameterBag
) { ) {
@ -96,7 +76,7 @@ class PersonDocumentType extends AbstractType
if ($isScopeConcerned && $this->parameterBag->get('chill_main')['acl']['form_show_scopes']) { if ($isScopeConcerned && $this->parameterBag->get('chill_main')['acl']['form_show_scopes']) {
$builder->add('scope', ScopePickerType::class, [ $builder->add('scope', ScopePickerType::class, [
'center' => $options['center'], 'center' => $this->centerResolverDispatcher->resolveCenter($document),
'role' => $options['role'], 'role' => $options['role'],
]); ]);
} }
@ -108,8 +88,7 @@ class PersonDocumentType extends AbstractType
'data_class' => Document::class, 'data_class' => Document::class,
]); ]);
$resolver->setRequired(['role', 'center']) $resolver->setRequired(['role'])
->setAllowedTypes('role', ['string']) ->setAllowedTypes('role', ['string']);
->setAllowedTypes('center', [\Chill\MainBundle\Entity\Center::class]);
} }
} }