Skip to content

Commit

Permalink
Fix admin construction
Browse files Browse the repository at this point in the history
  • Loading branch information
core23 committed Feb 19, 2022
1 parent 5eb3247 commit bf55697
Show file tree
Hide file tree
Showing 5 changed files with 41 additions and 6 deletions.
15 changes: 15 additions & 0 deletions phpstan-baseline.neon
Original file line number Diff line number Diff line change
@@ -1,15 +1,30 @@
parameters:
ignoreErrors:
-
message: "#^Method Nucleos\\\\UserAdminBundle\\\\Admin\\\\Model\\\\GroupAdmin\\:\\:__construct\\(\\) has parameter \\$codeOrGroupManager with generic interface Nucleos\\\\UserBundle\\\\Model\\\\GroupManager but does not specify its types\\: GroupTemplate$#"
count: 1
path: src/Admin/Model/GroupAdmin.php

-
message: "#^Method Nucleos\\\\UserAdminBundle\\\\Admin\\\\Model\\\\GroupAdmin\\:\\:__construct\\(\\) has parameter \\$groupManager with generic interface Nucleos\\\\UserBundle\\\\Model\\\\GroupManager but does not specify its types\\: GroupTemplate$#"
count: 1
path: src/Admin/Model/GroupAdmin.php

-
message: "#^Nucleos\\\\UserAdminBundle\\\\Admin\\\\Model\\\\GroupAdmin\\:\\:__construct\\(\\) does not call parent constructor from Sonata\\\\AdminBundle\\\\DependencyInjection\\\\Admin\\\\AbstractTaggedAdmin\\.$#"
count: 1
path: src/Admin/Model/GroupAdmin.php

-
message: "#^Property Nucleos\\\\UserAdminBundle\\\\Admin\\\\Model\\\\GroupAdmin\\:\\:\\$groupManager with generic interface Nucleos\\\\UserBundle\\\\Model\\\\GroupManager does not specify its types\\: GroupTemplate$#"
count: 1
path: src/Admin/Model/GroupAdmin.php

-
message: "#^Nucleos\\\\UserAdminBundle\\\\Admin\\\\Model\\\\UserAdmin\\:\\:__construct\\(\\) does not call parent constructor from Sonata\\\\AdminBundle\\\\DependencyInjection\\\\Admin\\\\AbstractTaggedAdmin\\.$#"
count: 1
path: src/Admin/Model/UserAdmin.php

-
message: "#^Call to an undefined method Symfony\\\\Component\\\\Config\\\\Definition\\\\Builder\\\\NodeDefinition\\:\\:children\\(\\)\\.$#"
count: 4
Expand Down
16 changes: 13 additions & 3 deletions src/Admin/Model/GroupAdmin.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
use Nucleos\UserAdminBundle\Form\Type\RolesMatrixType;
use Nucleos\UserBundle\Model\GroupInterface;
use Nucleos\UserBundle\Model\GroupManager;
use RuntimeException;
use Sonata\AdminBundle\Admin\AbstractAdmin;
use Sonata\AdminBundle\Datagrid\DatagridMapper;
use Sonata\AdminBundle\Datagrid\ListMapper;
Expand All @@ -29,15 +30,24 @@ abstract class GroupAdmin extends AbstractAdmin
private GroupManager $groupManager;

/**
* @phpstan-param GroupManager|class-string<GroupInterface> $class
* @phpstan-param GroupManager|string $codeOrGroupManager
* @phpstan-param class-string<GroupInterface> $class
*
* @param mixed $codeOrGroupManager
*/
public function __construct($codeOrGroupManager, string $class = null, string $baseControllerName = null, GroupManager $groupManager = null)
{
parent::__construct($codeOrGroupManager, $class, $baseControllerName);
if ($codeOrGroupManager instanceof GroupManager) {
$this->groupManager = $codeOrGroupManager;
} else {
parent::__construct($codeOrGroupManager, $class, $baseControllerName);

$this->groupManager = $groupManager;
if (null === $groupManager) {
throw new RuntimeException('Cannot create admin. GroupManager cannot be null');
}

$this->groupManager = $groupManager;
}
}

protected function createNewInstance(): object
Expand Down
16 changes: 13 additions & 3 deletions src/Admin/Model/UserAdmin.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
use Nucleos\UserBundle\Model\LocaleAwareUser;
use Nucleos\UserBundle\Model\UserInterface;
use Nucleos\UserBundle\Model\UserManager;
use RuntimeException;
use Sonata\AdminBundle\Admin\AbstractAdmin;
use Sonata\AdminBundle\Datagrid\DatagridMapper;
use Sonata\AdminBundle\Datagrid\ListMapper;
Expand All @@ -36,15 +37,24 @@ abstract class UserAdmin extends AbstractAdmin
protected UserManager $userManager;

/**
* @phpstan-param UserManager|class-string<UserInterface> $class
* @phpstan-param UserManager|string $codeOrUserManager
* @phpstan-param class-string<UserInterface> $class
*
* @param mixed $codeOrUserManager
*/
public function __construct($codeOrUserManager, string $class = null, string $baseControllerName = null, UserManager $userManager = null)
{
parent::__construct($codeOrUserManager, $class, $baseControllerName);
if ($codeOrUserManager instanceof UserManager) {
$this->userManager = $codeOrUserManager;
} else {
parent::__construct($codeOrUserManager, $class, $baseControllerName);

$this->userManager = $userManager;
if (null === $userManager) {
throw new RuntimeException('Cannot create admin. UserManager cannot be null');
}

$this->userManager = $userManager;
}
}

public function preUpdate($object): void
Expand Down
Empty file.
Empty file.

0 comments on commit bf55697

Please sign in to comment.