Skip to content

Commit 2acd16b

Browse files
committed
Add support for nucleos/user-bundle 4
1 parent bf5af03 commit 2acd16b

5 files changed

Lines changed: 41 additions & 12 deletions

File tree

composer.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
"require": {
3939
"php": "^8.3",
4040
"ext-json": "*",
41-
"nucleos/user-bundle": "^3.4",
41+
"nucleos/user-bundle": "^3.7 || ^4.0",
4242
"psr/container": "^1.0 || ^2.0",
4343
"psr/log": "^1.0 || ^2.0 || ^3.0",
4444
"sonata-project/admin-bundle": "^4.8.1",
@@ -65,7 +65,7 @@
6565
"twig/twig": "^2.14 || ^3.1"
6666
},
6767
"require-dev": {
68-
"doctrine/doctrine-bundle": "^2.10",
68+
"doctrine/doctrine-bundle": "^2.18 || ^3.0",
6969
"doctrine/orm": "^2.18 || ^3.0",
7070
"ergebnis/composer-normalize": "^2.0.1",
7171
"knplabs/knp-menu": "^3.2",
@@ -79,7 +79,7 @@
7979
"symfony/yaml": "^6.4 || ^7.0"
8080
},
8181
"conflict": {
82-
"doctrine/doctrine-bundle": "<2.10 || >=3",
82+
"doctrine/doctrine-bundle": "<2.18",
8383
"doctrine/orm": "<2.18 || >=4",
8484
"symfony/doctrine-bridge": "<6.4 || >=8"
8585
},

src/DependencyInjection/NucleosUserAdminExtension.php

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,14 +35,22 @@ public function prepend(ContainerBuilder $container): void
3535
}
3636
}
3737

38+
/**
39+
* @SuppressWarnings("PHPMD.NPathComplexity")
40+
*/
3841
public function load(array $configs, ContainerBuilder $container): void
3942
{
4043
$processor = new Processor();
4144
$configuration = new Configuration();
4245
$config = $processor->processConfiguration($configuration, $configs);
4346
$config = $this->fixImpersonating($config);
4447

45-
$config['manager_type'] = $container->getParameter('nucleos_user.storage');
48+
// TODO: Remove when dropping support of NucleosUserBundle 3
49+
if ($container->hasParameter('nucleos_user.storage')) {
50+
$config['manager_type'] = $container->getParameter('nucleos_user.storage');
51+
} else {
52+
$config['manager_type'] = 'orm';
53+
}
4654

4755
/** @var array<string, mixed> $bundles */
4856
$bundles = $container->getParameter('kernel.bundles');

tests/App/Entity/Group.php

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,19 @@
1313

1414
use Doctrine\DBAL\Types\Types;
1515
use Doctrine\ORM\Mapping as ORM;
16-
use Nucleos\UserBundle\Model\Group as BaseGroup;
16+
use Nucleos\UserBundle\Entity\BaseGroup;
17+
use Nucleos\UserBundle\Entity\BaseUser;
18+
use Nucleos\UserBundle\Model\Group as ModelGroup;
19+
20+
if (class_exists(BaseUser::class)) {
21+
abstract class InternalTestGroup extends BaseGroup {}
22+
} else {
23+
abstract class InternalTestGroup extends ModelGroup {}
24+
}
1725

1826
#[ORM\Entity]
1927
#[ORM\Table(name: 'user__group')]
20-
class Group extends BaseGroup
28+
class Group extends InternalTestGroup
2129
{
2230
#[ORM\Id]
2331
#[ORM\Column(type: Types::INTEGER)]

tests/App/Entity/User.php

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,25 @@
1515
use Doctrine\Common\Collections\Collection;
1616
use Doctrine\DBAL\Types\Types;
1717
use Doctrine\ORM\Mapping as ORM;
18+
use Nucleos\UserBundle\Entity\BaseUser;
1819
use Nucleos\UserBundle\Model\GroupInterface;
19-
use Nucleos\UserBundle\Model\User as BaseUser;
20+
use Nucleos\UserBundle\Model\User as ModelUser;
21+
22+
if (class_exists(BaseUser::class)) {
23+
/**
24+
* @phpstan-extends BaseUser<GroupInterface>
25+
*/
26+
abstract class InternalTestUser extends BaseUser {}
27+
} else {
28+
/**
29+
* @phpstan-extends ModelUser<GroupInterface>
30+
*/
31+
abstract class InternalTestUser extends ModelUser {}
32+
}
2033

21-
/**
22-
* @phpstan-extends BaseUser<GroupInterface>
23-
*/
2434
#[ORM\Entity]
2535
#[ORM\Table(name: 'user__user')]
26-
class User extends BaseUser
36+
class User extends InternalTestUser
2737
{
2838
#[ORM\Id]
2939
#[ORM\Column(type: Types::INTEGER)]

tests/App/config/config.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,10 @@
8787
],
8888
]]);
8989

90-
$containerConfigurator->extension('nucleos_user', ['db_driver' => 'orm']);
90+
// TODO: Remove when dropping support of NucleosUserBundle 3
91+
if (class_exists('\Nucleos\UserBundle\Action\CheckEmailAction')) {
92+
$containerConfigurator->extension('nucleos_user', ['db_driver' => 'orm']);
93+
}
9194

9295
$containerConfigurator->extension('nucleos_user', ['firewall_name' => 'admin']);
9396

0 commit comments

Comments
 (0)