Skip to content

Commit d1a733b

Browse files
authored
IBX-7935: Allowed null value for struct in user Types (#70)
* IBX-7935: Allowed null value for struct in user Types * Fixed typehints * Moved deprecation to default options callback
1 parent 04dd868 commit d1a733b

File tree

3 files changed

+11
-12
lines changed

3 files changed

+11
-12
lines changed

src/lib/Form/Type/Content/BaseContentType.php

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,8 @@
99
namespace Ibexa\ContentForms\Form\Type\Content;
1010

1111
use Ibexa\Contracts\Core\Repository\Values\Content\ContentCreateStruct;
12+
use Ibexa\Contracts\Core\Repository\Values\Content\ContentStruct;
1213
use Ibexa\Contracts\Core\Repository\Values\Content\ContentUpdateStruct;
13-
use Ibexa\Contracts\Core\Repository\Values\User\UserCreateStruct;
14-
use Ibexa\Contracts\Core\Repository\Values\User\UserUpdateStruct;
1514
use JMS\TranslationBundle\Annotation\Desc;
1615
use Symfony\Component\Form\AbstractType;
1716
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
@@ -69,14 +68,18 @@ public function configureOptions(OptionsResolver $resolver)
6968
{
7069
$resolver
7170
->setRequired(['languageCode', 'mainLanguageCode', 'struct'])
72-
->setDefault('struct', static function (Options $options, $value) {
71+
->setDefault('struct', static function (Options $options, ?ContentStruct $value) {
7372
if ($value !== null) {
7473
return $value;
7574
}
7675

77-
return $options['userUpdateStruct']
78-
?? $options['userCreateStruct']
79-
?? $options['contentUpdateStruct']
76+
trigger_deprecation(
77+
'ibexa/content-forms',
78+
'v4.6',
79+
'The option "struct" with null value is deprecated and will be required in v5.0.'
80+
);
81+
82+
return $options['contentUpdateStruct']
8083
?? $options['contentCreateStruct']
8184
?? null;
8285
})
@@ -91,8 +94,6 @@ public function configureOptions(OptionsResolver $resolver)
9194
'null',
9295
ContentCreateStruct::class,
9396
ContentUpdateStruct::class,
94-
UserCreateStruct::class,
95-
UserUpdateStruct::class,
9697
],
9798
)
9899
->setDeprecated(

src/lib/Form/Type/User/UserCreateType.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,13 +47,12 @@ public function buildForm(FormBuilderInterface $builder, array $options)
4747
public function configureOptions(OptionsResolver $resolver): void
4848
{
4949
$resolver
50-
->setRequired('struct')
5150
->setDefaults([
5251
'data_class' => UserCreateData::class,
5352
'intent' => 'create',
5453
'translation_domain' => 'ibexa_content_forms_user',
5554
])
56-
->setAllowedTypes('struct', UserCreateStruct::class);
55+
->setAllowedTypes('struct', ['null', UserCreateStruct::class]);
5756
}
5857
}
5958

src/lib/Form/Type/User/UserUpdateType.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,15 +47,14 @@ public function buildForm(FormBuilderInterface $builder, array $options)
4747
public function configureOptions(OptionsResolver $resolver): void
4848
{
4949
$resolver
50-
->setRequired('struct')
5150
->setDefaults([
5251
'location' => null,
5352
'content' => null,
5453
'data_class' => UserUpdateData::class,
5554
'intent' => 'update',
5655
'translation_domain' => 'ibexa_content_forms_user',
5756
])
58-
->setAllowedTypes('struct', UserUpdateStruct::class);
57+
->setAllowedTypes('struct', ['null', UserUpdateStruct::class]);
5958
}
6059
}
6160

0 commit comments

Comments
 (0)