Merge branch '4.4' into 5.0
* 4.4: [FrameworkBundle] fix "samesite" in XSD [Console] Consider STDIN interactive Update UserPasswordEncoderCommand.php [HttpFoundation][FrameworkBundle] fix support for samesite in session cookies [DoctrineBridge] Fixed submitting ids with query limit or offset
This commit is contained in:
commit
2f836ac8b2
@ -57,7 +57,7 @@ class ORMQueryBuilderLoader implements EntityLoaderInterface
|
||||
$metadata = $this->queryBuilder->getEntityManager()->getClassMetadata(current($this->queryBuilder->getRootEntities()));
|
||||
|
||||
foreach ($this->getEntities() as $entity) {
|
||||
if (\in_array(current($metadata->getIdentifierValues($entity)), $values, true)) {
|
||||
if (\in_array((string) current($metadata->getIdentifierValues($entity)), $values, true)) {
|
||||
$choices[] = $entity;
|
||||
}
|
||||
}
|
||||
|
@ -953,7 +953,32 @@ class EntityTypeTest extends BaseTypeTest
|
||||
$this->assertNull($field->getData());
|
||||
}
|
||||
|
||||
public function testDisallowChoicesThatAreNotIncludedQueryBuilderSingleIdentifierWithLimit()
|
||||
public function testSingleIdentifierWithLimit()
|
||||
{
|
||||
$entity1 = new SingleIntIdEntity(1, 'Foo');
|
||||
$entity2 = new SingleIntIdEntity(2, 'Bar');
|
||||
$entity3 = new SingleIntIdEntity(3, 'Baz');
|
||||
|
||||
$this->persist([$entity1, $entity2, $entity3]);
|
||||
|
||||
$repository = $this->em->getRepository(self::SINGLE_IDENT_CLASS);
|
||||
|
||||
$field = $this->factory->createNamed('name', static::TESTED_TYPE, null, [
|
||||
'em' => 'default',
|
||||
'class' => self::SINGLE_IDENT_CLASS,
|
||||
'query_builder' => $repository->createQueryBuilder('e')
|
||||
->where('e.id IN (1, 2, 3)')
|
||||
->setMaxResults(1),
|
||||
'choice_label' => 'name',
|
||||
]);
|
||||
|
||||
$field->submit('1');
|
||||
|
||||
$this->assertTrue($field->isSynchronized());
|
||||
$this->assertSame($entity1, $field->getData());
|
||||
}
|
||||
|
||||
public function testDisallowChoicesThatAreNotIncludedByQueryBuilderSingleIdentifierWithLimit()
|
||||
{
|
||||
$entity1 = new SingleIntIdEntity(1, 'Foo');
|
||||
$entity2 = new SingleIntIdEntity(2, 'Bar');
|
||||
|
@ -362,6 +362,7 @@
|
||||
<xsd:simpleType name="cookie_samesite">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:enumeration value="" />
|
||||
<xsd:enumeration value="none" />
|
||||
<xsd:enumeration value="lax" />
|
||||
<xsd:enumeration value="strict" />
|
||||
</xsd:restriction>
|
||||
|
@ -82,16 +82,16 @@ generated to encode the password:
|
||||
Pass the full user class path as the second argument to encode passwords for
|
||||
your own entities:
|
||||
|
||||
<info>php %command.full_name% --no-interaction [password] App\Entity\User</info>
|
||||
<info>php %command.full_name% --no-interaction [password] 'App\Entity\User'</info>
|
||||
|
||||
Executing the command interactively allows you to generate a random salt for
|
||||
encoding the password:
|
||||
|
||||
<info>php %command.full_name% [password] App\Entity\User</info>
|
||||
<info>php %command.full_name% [password] 'App\Entity\User'</info>
|
||||
|
||||
In case your encoder doesn't require a salt, add the <comment>empty-salt</comment> option:
|
||||
|
||||
<info>php %command.full_name% --empty-salt [password] App\Entity\User</info>
|
||||
<info>php %command.full_name% --empty-salt [password] 'App\Entity\User'</info>
|
||||
|
||||
EOF
|
||||
)
|
||||
|
@ -36,7 +36,6 @@ use Symfony\Component\Console\Input\InputAwareInterface;
|
||||
use Symfony\Component\Console\Input\InputDefinition;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Input\InputOption;
|
||||
use Symfony\Component\Console\Input\StreamableInputInterface;
|
||||
use Symfony\Component\Console\Output\ConsoleOutput;
|
||||
use Symfony\Component\Console\Output\ConsoleOutputInterface;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
@ -858,18 +857,6 @@ class Application implements ResetInterface
|
||||
|
||||
if (true === $input->hasParameterOption(['--no-interaction', '-n'], true)) {
|
||||
$input->setInteractive(false);
|
||||
} else {
|
||||
$inputStream = null;
|
||||
|
||||
if ($input instanceof StreamableInputInterface) {
|
||||
$inputStream = $input->getStream();
|
||||
}
|
||||
|
||||
$inputStream = !$inputStream && \defined('STDIN') ? STDIN : $inputStream;
|
||||
|
||||
if ((!$inputStream || !stream_isatty($inputStream)) && false === getenv('SHELL_INTERACTIVE')) {
|
||||
$input->setInteractive(false);
|
||||
}
|
||||
}
|
||||
|
||||
switch ($shellVerbosity = (int) getenv('SHELL_VERBOSITY')) {
|
||||
|
@ -56,19 +56,12 @@ class ApplicationTester
|
||||
$this->input->setInteractive($options['interactive']);
|
||||
}
|
||||
|
||||
$shellInteractive = getenv('SHELL_INTERACTIVE');
|
||||
|
||||
if ($this->inputs) {
|
||||
$this->input->setStream(self::createStream($this->inputs));
|
||||
putenv('SHELL_INTERACTIVE=1');
|
||||
}
|
||||
|
||||
$this->initOutput($options);
|
||||
|
||||
$this->statusCode = $this->application->run($this->input, $this->output);
|
||||
|
||||
putenv($shellInteractive ? "SHELL_INTERACTIVE=$shellInteractive" : 'SHELL_INTERACTIVE');
|
||||
|
||||
return $this->statusCode;
|
||||
return $this->statusCode = $this->application->run($this->input, $this->output);
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,28 @@
|
||||
--STDIN--
|
||||
Hello World
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
use Symfony\Component\Console\Application;
|
||||
use Symfony\Component\Console\Helper\QuestionHelper;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Symfony\Component\Console\Question\Question;
|
||||
|
||||
$vendor = __DIR__;
|
||||
while (!file_exists($vendor.'/vendor')) {
|
||||
$vendor = \dirname($vendor);
|
||||
}
|
||||
require $vendor.'/vendor/autoload.php';
|
||||
|
||||
(new Application())
|
||||
->register('app')
|
||||
->setCode(function(InputInterface $input, OutputInterface $output) {
|
||||
$output->writeln((new QuestionHelper())->ask($input, $output, new Question('Foo?')));
|
||||
})
|
||||
->getApplication()
|
||||
->setDefaultCommand('app', true)
|
||||
->run()
|
||||
;
|
||||
--EXPECT--
|
||||
Foo?Hello World
|
Reference in New Issue
Block a user