Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Resolve NEXT_MAJOR comments #1479

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 1 addition & 4 deletions src/Admin/Document/UserAdmin.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,6 @@

use Sonata\UserBundle\Admin\Model\UserAdmin as BaseUserAdmin;

/**
* @final since sonata-project/user-bundle 4.15
*/
class UserAdmin extends BaseUserAdmin
final class UserAdmin extends BaseUserAdmin
{
}
5 changes: 1 addition & 4 deletions src/Admin/Entity/UserAdmin.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,6 @@

use Sonata\UserBundle\Admin\Model\UserAdmin as BaseUserAdmin;

/**
* @final since sonata-project/user-bundle 4.15
*/
class UserAdmin extends BaseUserAdmin
final class UserAdmin extends BaseUserAdmin
{
}
4 changes: 1 addition & 3 deletions src/DependencyInjection/Configuration.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,11 @@
use Symfony\Component\Config\Definition\ConfigurationInterface;

/**
* @final since sonata-project/user-bundle 4.15
*
* This is the class that validates and merges configuration from your app/config files.
*
* To learn more see {@link http://symfony.com/doc/current/cookbook/bundles/extension.html#cookbook-bundles-extension-config-class}
*/
class Configuration implements ConfigurationInterface
final class Configuration implements ConfigurationInterface
{
/**
* @psalm-suppress PossiblyNullReference, PossiblyUndefinedMethod
Expand Down
12 changes: 5 additions & 7 deletions src/DependencyInjection/SonataUserExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,9 @@
use Symfony\Component\HttpKernel\DependencyInjection\Extension;

/**
* @final since sonata-project/user-bundle 4.15
*
* @author Thomas Rabaix <thomas.rabaix@sonata-project.org>
*/
class SonataUserExtension extends Extension implements PrependExtensionInterface
final class SonataUserExtension extends Extension implements PrependExtensionInterface
{
public function prepend(ContainerBuilder $container): void
{
Expand Down Expand Up @@ -117,31 +115,31 @@ public function fixImpersonating(array $config): array
/**
* @param array<string, mixed> $config
*/
public function configureClass(array $config, ContainerBuilder $container): void
private function configureClass(array $config, ContainerBuilder $container): void
{
$container->setParameter('sonata.user.user.class', $config['class']['user']);
}

/**
* @param array<string, mixed> $config
*/
public function configureAdminClass(array $config, ContainerBuilder $container): void
private function configureAdminClass(array $config, ContainerBuilder $container): void
{
$container->setParameter('sonata.user.admin.user.class', $config['admin']['user']['class']);
}

/**
* @param array<string, mixed> $config
*/
public function configureTranslationDomain(array $config, ContainerBuilder $container): void
private function configureTranslationDomain(array $config, ContainerBuilder $container): void
{
$container->setParameter('sonata.user.admin.user.translation_domain', $config['admin']['user']['translation']);
}

/**
* @param array<string, mixed> $config
*/
public function configureController(array $config, ContainerBuilder $container): void
private function configureController(array $config, ContainerBuilder $container): void
{
$container->setParameter('sonata.user.admin.user.controller', $config['admin']['user']['controller']);
}
Expand Down
4 changes: 1 addition & 3 deletions src/Document/UserManager.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,11 @@
use Sonata\UserBundle\Util\CanonicalFieldsUpdaterInterface;

/**
* @final since sonata-project/user-bundle 4.15
*
* @author Hugo Briand <briand@ekino.com>
*
* @phpstan-extends BaseDocumentManager<UserInterface>
*/
class UserManager extends BaseDocumentManager implements UserManagerInterface
final class UserManager extends BaseDocumentManager implements UserManagerInterface
{
private CanonicalFieldsUpdaterInterface $canonicalFieldsUpdater;

Expand Down
4 changes: 1 addition & 3 deletions src/Entity/UserManager.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,11 @@
use Sonata\UserBundle\Util\CanonicalFieldsUpdaterInterface;

/**
* @final since sonata-project/user-bundle 4.15
*
* @author Hugo Briand <briand@ekino.com>
*
* @phpstan-extends BaseEntityManager<UserInterface>
*/
class UserManager extends BaseEntityManager implements UserManagerInterface
final class UserManager extends BaseEntityManager implements UserManagerInterface
{
private CanonicalFieldsUpdaterInterface $canonicalFieldsUpdater;

Expand Down
12 changes: 5 additions & 7 deletions src/Form/Transformer/RestoreRolesTransformer.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,22 +13,22 @@

namespace Sonata\UserBundle\Form\Transformer;

use Sonata\UserBundle\Security\EditableRolesBuilder;
use Sonata\UserBundle\Security\EditableRolesBuilderInterface;
use Symfony\Component\Form\DataTransformerInterface;

/**
* @phpstan-implements DataTransformerInterface<string[], string[]>
*/
class RestoreRolesTransformer implements DataTransformerInterface
final class RestoreRolesTransformer implements DataTransformerInterface
{
protected EditableRolesBuilder $rolesBuilder;
private EditableRolesBuilderInterface $rolesBuilder;

/**
* @var string[]|null
*/
protected ?array $originalRoles = null;
private ?array $originalRoles = null;

public function __construct(EditableRolesBuilder $rolesBuilder)
public function __construct(EditableRolesBuilderInterface $rolesBuilder)
{
$this->rolesBuilder = $rolesBuilder;
}
Expand All @@ -46,7 +46,6 @@ public function setOriginalRoles(?array $originalRoles = null): void
*
* @return string[]|null
*/
#[\ReturnTypeWillChange]
public function transform($value): ?array
{
if (null === $value) {
Expand All @@ -65,7 +64,6 @@ public function transform($value): ?array
*
* @return string[]|null
*/
#[\ReturnTypeWillChange]
public function reverseTransform($selectedRoles): ?array
{
if (null === $this->originalRoles) {
Expand Down
11 changes: 4 additions & 7 deletions src/Form/Type/SecurityRolesType.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
namespace Sonata\UserBundle\Form\Type;

use Sonata\UserBundle\Form\Transformer\RestoreRolesTransformer;
use Sonata\UserBundle\Security\EditableRolesBuilder;
use Sonata\UserBundle\Security\EditableRolesBuilderInterface;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\FormBuilderInterface;
Expand All @@ -25,14 +25,11 @@
use Symfony\Component\OptionsResolver\Options;
use Symfony\Component\OptionsResolver\OptionsResolver;

/**
* @final since sonata-project/user-bundle 4.15
*/
class SecurityRolesType extends AbstractType
final class SecurityRolesType extends AbstractType
{
protected EditableRolesBuilder $rolesBuilder;
private EditableRolesBuilderInterface $rolesBuilder;

public function __construct(EditableRolesBuilder $rolesBuilder)
public function __construct(EditableRolesBuilderInterface $rolesBuilder)
{
$this->rolesBuilder = $rolesBuilder;
}
Expand Down
2 changes: 1 addition & 1 deletion src/Resources/config/admin.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,9 @@
new ReferenceConfigurator('security.authorization_checker'),
new ReferenceConfigurator('sonata.admin.pool'),
new ReferenceConfigurator('sonata.admin.configuration'),
new ReferenceConfigurator('translator'),
'%security.role_hierarchy.roles%',
])
->call('setTranslator', [new ReferenceConfigurator('translator')])

->set('sonata.user.form.type.security_roles', SecurityRolesType::class)
->public()
Expand Down
5 changes: 1 addition & 4 deletions src/Security/Authorization/Voter/UserAclVoter.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,7 @@
use Symfony\Component\Security\Acl\Voter\AclVoter;
use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;

/**
* @final since sonata-project/user-bundle 4.15
*/
class UserAclVoter extends AclVoter
final class UserAclVoter extends AclVoter
{
public function supportsClass($class): bool
{
Expand Down
33 changes: 13 additions & 20 deletions src/Security/EditableRolesBuilder.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,7 @@
use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface;
use Symfony\Contracts\Translation\TranslatorInterface;

/**
* @final since sonata-project/user-bundle 4.15
*/
class EditableRolesBuilder
final class EditableRolesBuilder implements EditableRolesBuilderInterface
{
private TokenStorageInterface $tokenStorage;

Expand All @@ -32,33 +29,32 @@ class EditableRolesBuilder

private SonataConfiguration $configuration;

private TranslatorInterface $translator;

/**
* @var array<string, array<string>>
*/
private array $rolesHierarchy;

private ?TranslatorInterface $translator = null;

/**
* @param array<string, array<string>> $rolesHierarchy
*/
public function __construct(TokenStorageInterface $tokenStorage, AuthorizationCheckerInterface $authorizationChecker, Pool $pool, SonataConfiguration $configuration, array $rolesHierarchy = [])
{
public function __construct(
TokenStorageInterface $tokenStorage,
AuthorizationCheckerInterface $authorizationChecker,
Pool $pool,
SonataConfiguration $configuration,
TranslatorInterface $translator,
array $rolesHierarchy = []
) {
$this->tokenStorage = $tokenStorage;
$this->authorizationChecker = $authorizationChecker;
$this->pool = $pool;
$this->configuration = $configuration;
$this->rolesHierarchy = $rolesHierarchy;
}

public function setTranslator(TranslatorInterface $translator): void
{
$this->translator = $translator;
$this->rolesHierarchy = $rolesHierarchy;
}

/**
* @return string[]
*/
public function getRoles(?string $domain = null, bool $expanded = true): array
{
if (null === $this->tokenStorage->getToken()) {
Expand Down Expand Up @@ -97,9 +93,6 @@ public function getRoles(?string $domain = null, bool $expanded = true): array
return $roles;
}

/**
* @return string[]
*/
public function getRolesReadOnly(?string $domain = null): array
{
if (null === $this->tokenStorage->getToken()) {
Expand Down Expand Up @@ -147,7 +140,7 @@ private function translateRole(string $role, ?string $domain): string
{
// translation domain is false, do not translate it,
// null is fallback to message domain
if (null === $domain || !isset($this->translator)) {
if (null === $domain) {
return $role;
}

Expand Down
27 changes: 27 additions & 0 deletions src/Security/EditableRolesBuilderInterface.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<?php

declare(strict_types=1);

/*
* This file is part of the Sonata Project package.
*
* (c) Thomas Rabaix <thomas.rabaix@sonata-project.org>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/

namespace Sonata\UserBundle\Security;

interface EditableRolesBuilderInterface
{
/**
* @return string[]
*/
public function getRoles(?string $domain = null, bool $expanded = true): array;

/**
* @return string[]
*/
public function getRolesReadOnly(?string $domain = null): array;
}
6 changes: 3 additions & 3 deletions src/Security/UserProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@
use Symfony\Component\Security\Core\User\UserInterface as SecurityUserInterface;
use Symfony\Component\Security\Core\User\UserProviderInterface;

class UserProvider implements UserProviderInterface
final class UserProvider implements UserProviderInterface
{
protected UserManagerInterface $userManager;
private UserManagerInterface $userManager;

public function __construct(UserManagerInterface $userManager)
{
Expand Down Expand Up @@ -77,7 +77,7 @@ public function supportsClass($class): bool
return $userClass === $class || is_subclass_of($class, $userClass);
}

protected function findUser(string $username): ?UserInterface
private function findUser(string $username): ?UserInterface
{
return $this->userManager->findUserByUsernameOrEmail($username);
}
Expand Down
5 changes: 1 addition & 4 deletions src/SonataUserBundle.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,7 @@
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\HttpKernel\Bundle\Bundle;

/**
* @final since sonata-project/user-bundle 4.15
*/
class SonataUserBundle extends Bundle
final class SonataUserBundle extends Bundle
{
public function build(ContainerBuilder $container): void
{
Expand Down
6 changes: 2 additions & 4 deletions src/Twig/GlobalVariables.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,11 @@
use Symfony\Component\DependencyInjection\ContainerInterface;

/**
* @final since sonata-project/user-bundle 4.15
*
* @author Thomas Rabaix <thomas.rabaix@sonata-project.org>
*/
class GlobalVariables
final class GlobalVariables
{
protected ContainerInterface $container;
private ContainerInterface $container;

/**
* @psalm-suppress ContainerDependency
Expand Down
Loading