Skip to content

Commit

Permalink
Remove Interface suffix and use specific prefix form default impl
Browse files Browse the repository at this point in the history
  • Loading branch information
core23 committed Dec 28, 2021
1 parent 71aec81 commit def81b5
Show file tree
Hide file tree
Showing 65 changed files with 739 additions and 671 deletions.
28 changes: 27 additions & 1 deletion UPGRADE-2.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,37 @@ The following classes were removed in favor of symfony components:

- `Nucleos\UserBundle\Util\PasswordUpdaterInterface`

## Remove user and group id
## Removed user and group id

The `id` property was removed from the `User` class in favor of `UserInterface::getUserIdentifier`.
The `id` property was removed from the `Group` class.

## Removed `Interface` suffix

The `Interface` suffix was removed from all* interfaces. All default implementation use specific class prefix.

- `Nucleos\UserBundle\Mailer\MailerInterface` => `Nucleos\UserBundle\Mailer\ResettingMailer`
- `Nucleos\UserBundle\Mailer\NoopMailer` => `Nucleos\UserBundle\Mailer\NoopResettingMailer`
- `Nucleos\UserBundle\Mailer\Mailer` => `Nucleos\UserBundle\Mailer\SimpleResettingMailer`
- `Nucleos\UserBundle\Model\GroupableInterface` => `Nucleos\UserBundle\Model\GroupAwareUser`
- `Nucleos\UserBundle\Model\GroupManagerInterface` => `Nucleos\UserBundle\Model\GroupManager`
- `Nucleos\UserBundle\Model\GroupManager` => `Nucleos\UserBundle\Model\BaseGroupManager`
- `Nucleos\UserBundle\Model\LocaleAwareInterface` => `Nucleos\UserBundle\Model\LocaleAwareUser`
- `Nucleos\UserBundle\Model\UserManagerInterface` => `Nucleos\UserBundle\Model\UserManager`
- `Nucleos\UserBundle\Model\UserManager` => `Nucleos\UserBundle\Model\BaseUserManager`
- `Nucleos\UserBundle\Security\LoginManagerInterface` => `Nucleos\UserBundle\Security\LoginManager`
- `Nucleos\UserBundle\Security\LoginManager` => `Nucleos\UserBundle\Security\SimpleLoginManager`
- `Nucleos\UserBundle\Util\CanonicalizerInterface` => `Nucleos\UserBundle\Util\Canonicalizer`
- `Nucleos\UserBundle\Util\Canonicalizer` => `Nucleos\UserBundle\Util\SimpleCanonicalizer`
- `Nucleos\UserBundle\Util\UserManipulator` => `Nucleos\UserBundle\Util\SimpleUserManipulator`
- `Nucleos\UserBundle\Util\TokenGeneratorInterface` => `Nucleos\UserBundle\Util\TokenGenerator`
- `Nucleos\UserBundle\Util\TokenGenerator` => `Nucleos\UserBundle\Util\SimpleTokenGenerator`

Only two interface keep the suffix to stay consinstent with the parent symfony interfaces:

- `Nucleos\UserBundle\Model\UserInterface`
- `Nucleos\UserBundle\Model\GroupInterface`

## Deprecations

All the deprecated code introduced on 1.x is removed on 2.0.
Expand Down
2 changes: 1 addition & 1 deletion docs/canonicalizer.rst
Original file line number Diff line number Diff line change
Expand Up @@ -44,4 +44,4 @@ to use the same logic.

.. note::

The default implementation has the id ``nucleos_user.util.canonicalizer.default``.
The default implementation has the id ``nucleos_user.util.canonicalizer.simple``.
8 changes: 4 additions & 4 deletions docs/configuration_reference.rst
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,10 @@ All available configuration options are listed below with their default values.
token_ttl: 86400
from_email: # Use this node only if you don't want the global email address for the resetting email
service:
mailer: nucleos_user.mailer.default
email_canonicalizer: nucleos_user.util.canonicalizer.default
username_canonicalizer: nucleos_user.util.canonicalizer.default
token_generator: nucleos_user.util.token_generator.default
mailer: nucleos_user.mailer.simple
email_canonicalizer: nucleos_user.util.canonicalizer.simple
username_canonicalizer: nucleos_user.util.canonicalizer.simple
token_generator: nucleos_user.util.token_generator.simple
user_manager: nucleos_user.user_manager.default
group:
group_class: ~ # Required when using groups
Expand Down
2 changes: 1 addition & 1 deletion docs/emails.rst
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ Default Mailer Implementations
The bundle comes with three mailer implementations. They are listed below
by service id:

- ``nucleos_user.mailer.default`` is the default implementation, and uses symfony mailer to send emails.
- ``nucleos_user.mailer.simple`` is the default implementation, and uses symfony mailer to send emails.
- ``nucleos_user.mailer.noop`` is a mailer implementation which performs no operation, so no emails are sent.

Configuring the Sender Email Address
Expand Down
6 changes: 3 additions & 3 deletions src/Action/AccountDeletionAction.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
use Nucleos\UserBundle\Form\Model\AccountDeletion;
use Nucleos\UserBundle\Form\Type\AccountDeletionFormType;
use Nucleos\UserBundle\Model\UserInterface;
use Nucleos\UserBundle\Model\UserManagerInterface;
use Nucleos\UserBundle\Model\UserManager;
use Nucleos\UserBundle\NucleosUserEvents;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\FormFactoryInterface;
Expand All @@ -38,7 +38,7 @@ final class AccountDeletionAction

private RouterInterface $router;

private UserManagerInterface $userManager;
private UserManager $userManager;

private TokenStorageInterface $tokenStorage;

Expand All @@ -49,7 +49,7 @@ final class AccountDeletionAction
public function __construct(
Environment $twig,
RouterInterface $router,
UserManagerInterface $userManager,
UserManager $userManager,
TokenStorageInterface $tokenStorage,
FormFactoryInterface $formFactory,
EventDispatcherInterface $eventDispatcher
Expand Down
6 changes: 3 additions & 3 deletions src/Action/ChangePasswordAction.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
use Nucleos\UserBundle\Form\Model\ChangePassword;
use Nucleos\UserBundle\Form\Type\ChangePasswordFormType;
use Nucleos\UserBundle\Model\UserInterface;
use Nucleos\UserBundle\Model\UserManagerInterface;
use Nucleos\UserBundle\Model\UserManager;
use Nucleos\UserBundle\NucleosUserEvents;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\FormFactoryInterface;
Expand All @@ -44,7 +44,7 @@ final class ChangePasswordAction

private FormFactoryInterface $formFactory;

private UserManagerInterface $userManager;
private UserManager $userManager;

private string $loggedinRoute;

Expand All @@ -54,7 +54,7 @@ public function __construct(
Security $security,
EventDispatcherInterface $eventDispatcher,
FormFactoryInterface $formFactory,
UserManagerInterface $userManager,
UserManager $userManager,
string $loggedinRoute
) {
$this->twig = $twig;
Expand Down
6 changes: 3 additions & 3 deletions src/Action/ResetAction.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
use Nucleos\UserBundle\Event\GetResponseUserEvent;
use Nucleos\UserBundle\Form\Model\Resetting;
use Nucleos\UserBundle\Form\Type\ResettingFormType;
use Nucleos\UserBundle\Model\UserManagerInterface;
use Nucleos\UserBundle\Model\UserManager;
use Nucleos\UserBundle\NucleosUserEvents;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\FormFactoryInterface;
Expand All @@ -37,7 +37,7 @@ final class ResetAction

private FormFactoryInterface $formFactory;

private UserManagerInterface $userManager;
private UserManager $userManager;

private string $loggedinRoute;

Expand All @@ -46,7 +46,7 @@ public function __construct(
RouterInterface $router,
EventDispatcherInterface $eventDispatcher,
FormFactoryInterface $formFactory,
UserManagerInterface $userManager,
UserManager $userManager,
string $loggedinRoute
) {
$this->twig = $twig;
Expand Down
20 changes: 10 additions & 10 deletions src/Action/SendEmailAction.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,11 @@
use DateTime;
use Nucleos\UserBundle\Event\GetResponseNullableUserEvent;
use Nucleos\UserBundle\Event\GetResponseUserEvent;
use Nucleos\UserBundle\Mailer\MailerInterface;
use Nucleos\UserBundle\Mailer\ResettingMailer;
use Nucleos\UserBundle\Model\UserInterface;
use Nucleos\UserBundle\Model\UserManagerInterface;
use Nucleos\UserBundle\Model\UserManager;
use Nucleos\UserBundle\NucleosUserEvents;
use Nucleos\UserBundle\Util\TokenGeneratorInterface;
use Nucleos\UserBundle\Util\TokenGenerator;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
Expand All @@ -33,11 +33,11 @@ final class SendEmailAction

private EventDispatcherInterface $eventDispatcher;

private UserManagerInterface $userManager;
private UserManager $userManager;

private TokenGeneratorInterface $tokenGenerator;
private TokenGenerator $tokenGenerator;

private MailerInterface $mailer;
private ResettingMailer $mailer;

private int $retryTtl;

Expand All @@ -46,10 +46,10 @@ final class SendEmailAction
public function __construct(
RouterInterface $router,
EventDispatcherInterface $eventDispatcher,
UserManagerInterface $userManager,
TokenGeneratorInterface $tokenGenerator,
UserManager $userManager,
TokenGenerator $tokenGenerator,
UserProviderInterface $userProvider,
MailerInterface $mailer,
ResettingMailer $mailer,
int $retryTtl
) {
$this->router = $router;
Expand Down Expand Up @@ -119,7 +119,7 @@ private function process(Request $request, UserInterface $user): ?Response
return $event->getResponse();
}

$this->mailer->sendResettingEmailMessage($user);
$this->mailer->send($user);
$user->setPasswordRequestedAt(new DateTime());
$this->userManager->updateUser($user);

Expand Down
8 changes: 4 additions & 4 deletions src/DependencyInjection/Configuration.php
Original file line number Diff line number Diff line change
Expand Up @@ -111,10 +111,10 @@ private function addServiceSection(NodeDefinition $node): void
->arrayNode('service')
->addDefaultsIfNotSet()
->children()
->scalarNode('mailer')->defaultValue('nucleos_user.mailer.default')->end()
->scalarNode('email_canonicalizer')->defaultValue('nucleos_user.util.canonicalizer.default')->end()
->scalarNode('token_generator')->defaultValue('nucleos_user.util.token_generator.default')->end()
->scalarNode('username_canonicalizer')->defaultValue('nucleos_user.util.canonicalizer.default')->end()
->scalarNode('mailer')->defaultValue('nucleos_user.mailer.simple')->end()
->scalarNode('email_canonicalizer')->defaultValue('nucleos_user.util.canonicalizer.simple')->end()
->scalarNode('token_generator')->defaultValue('nucleos_user.util.token_generator.simple')->end()
->scalarNode('username_canonicalizer')->defaultValue('nucleos_user.util.canonicalizer.simple')->end()
->scalarNode('user_manager')->defaultValue('nucleos_user.user_manager.default')->end()
->end()
->end()
Expand Down
16 changes: 8 additions & 8 deletions src/DependencyInjection/NucleosUserExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@

namespace Nucleos\UserBundle\DependencyInjection;

use Nucleos\UserBundle\Mailer\MailerInterface;
use Nucleos\UserBundle\Model\GroupManagerInterface;
use Nucleos\UserBundle\Model\UserManagerInterface;
use Nucleos\UserBundle\Util\TokenGeneratorInterface;
use Nucleos\UserBundle\Mailer\ResettingMailer;
use Nucleos\UserBundle\Model\GroupManager;
use Nucleos\UserBundle\Model\UserManager;
use Nucleos\UserBundle\Util\TokenGenerator;
use Symfony\Component\Config\Definition\Processor;
use Symfony\Component\Config\FileLocator;
use Symfony\Component\Config\Loader\FileLoader;
Expand Down Expand Up @@ -90,10 +90,10 @@ public function load(array $configs, ContainerBuilder $container): void
$container->setAlias('nucleos_user.util.username_canonicalizer', new Alias($config['service']['username_canonicalizer'], true));

$container->setAlias('nucleos_user.util.token_generator', new Alias($config['service']['token_generator'], true));
$container->setAlias(TokenGeneratorInterface::class, new Alias($config['service']['token_generator'], true));
$container->setAlias(TokenGenerator::class, new Alias($config['service']['token_generator'], true));

$container->setAlias('nucleos_user.user_manager', new Alias($config['service']['user_manager'], true));
$container->setAlias(UserManagerInterface::class, new Alias($config['service']['user_manager'], true));
$container->setAlias(UserManager::class, new Alias($config['service']['user_manager'], true));

if ($config['use_listener'] && isset(self::$doctrineDrivers[$config['db_driver']])) {
$listenerDefinition = $container->getDefinition('nucleos_user.user_listener');
Expand Down Expand Up @@ -123,7 +123,7 @@ public function load(array $configs, ContainerBuilder $container): void

if ($this->mailerNeeded) {
$container->setAlias('nucleos_user.mailer', new Alias($config['service']['mailer'], true));
$container->setAlias(MailerInterface::class, new Alias($config['service']['mailer'], true));
$container->setAlias(ResettingMailer::class, new Alias($config['service']['mailer'], true));
}
}

Expand Down Expand Up @@ -234,7 +234,7 @@ private function loadGroups(array $config, ContainerBuilder $container, FileLoad
}

$container->setAlias('nucleos_user.group_manager', new Alias($config['group_manager'], true));
$container->setAlias(GroupManagerInterface::class, new Alias('nucleos_user.group_manager', true));
$container->setAlias(GroupManager::class, new Alias('nucleos_user.group_manager', true));

$this->remapParametersNamespaces($config, $container, [
'' => [
Expand Down
4 changes: 2 additions & 2 deletions src/Doctrine/GroupManager.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,12 @@

use Doctrine\Persistence\ObjectManager;
use Doctrine\Persistence\ObjectRepository;
use Nucleos\UserBundle\Model\BaseGroupManager as BaseGroupManager;
use Nucleos\UserBundle\Model\GroupInterface;
use Nucleos\UserBundle\Model\GroupManager as BaseGroupManager;

/**
* @phpstan-template GroupTemplate of \Nucleos\UserBundle\Model\GroupInterface
* @phpstan-extends \Nucleos\UserBundle\Model\GroupManager<GroupTemplate>
* @phpstan-extends BaseGroupManager<GroupTemplate>
*/
final class GroupManager extends BaseGroupManager
{
Expand Down
2 changes: 1 addition & 1 deletion src/Doctrine/UserManager.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@

use Doctrine\Persistence\ObjectManager;
use Doctrine\Persistence\ObjectRepository;
use Nucleos\UserBundle\Model\BaseUserManager as BaseUserManager;
use Nucleos\UserBundle\Model\UserInterface;
use Nucleos\UserBundle\Model\UserManager as BaseUserManager;
use Nucleos\UserBundle\Util\CanonicalFieldsUpdater;

final class UserManager extends BaseUserManager
Expand Down
6 changes: 3 additions & 3 deletions src/EventListener/AuthenticationListener.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,18 +16,18 @@
use Nucleos\UserBundle\Event\FilterUserResponseEvent;
use Nucleos\UserBundle\Event\UserEvent;
use Nucleos\UserBundle\NucleosUserEvents;
use Nucleos\UserBundle\Security\LoginManagerInterface;
use Nucleos\UserBundle\Security\LoginManager;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\Security\Core\Exception\AccountStatusException;
use Symfony\Contracts\EventDispatcher\EventDispatcherInterface;

final class AuthenticationListener implements EventSubscriberInterface
{
private LoginManagerInterface $loginManager;
private LoginManager $loginManager;

private string $firewallName;

public function __construct(LoginManagerInterface $loginManager, string $firewallName)
public function __construct(LoginManager $loginManager, string $firewallName)
{
$this->loginManager = $loginManager;
$this->firewallName = $firewallName;
Expand Down
6 changes: 3 additions & 3 deletions src/EventListener/LastLoginListener.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,17 @@
use DateTime;
use Nucleos\UserBundle\Event\UserEvent;
use Nucleos\UserBundle\Model\UserInterface;
use Nucleos\UserBundle\Model\UserManagerInterface;
use Nucleos\UserBundle\Model\UserManager;
use Nucleos\UserBundle\NucleosUserEvents;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\Security\Http\Event\InteractiveLoginEvent;
use Symfony\Component\Security\Http\SecurityEvents;

final class LastLoginListener implements EventSubscriberInterface
{
private UserManagerInterface $userManager;
private UserManager $userManager;

public function __construct(UserManagerInterface $userManager)
public function __construct(UserManager $userManager)
{
$this->userManager = $userManager;
}
Expand Down
14 changes: 7 additions & 7 deletions src/EventListener/LocaleEventListener.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
namespace Nucleos\UserBundle\EventListener;

use Nucleos\UserBundle\Event\UserEvent;
use Nucleos\UserBundle\Model\LocaleAwareInterface;
use Nucleos\UserBundle\Model\LocaleAwareUser;
use Nucleos\UserBundle\NucleosUserEvents;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpFoundation\Request;
Expand Down Expand Up @@ -53,7 +53,7 @@ public function onImplicitLogin(UserEvent $event): void
{
$user = $event->getUser();

if (!$user instanceof LocaleAwareInterface || null === $event->getRequest()) {
if (!$user instanceof LocaleAwareUser || null === $event->getRequest()) {
return;
}

Expand All @@ -65,7 +65,7 @@ public function onSecurityInteractiveLogin(InteractiveLoginEvent $event): void
{
$user = $event->getAuthenticationToken()->getUser();

if (!$user instanceof LocaleAwareInterface) {
if (!$user instanceof LocaleAwareUser) {
return;
}

Expand Down Expand Up @@ -97,7 +97,7 @@ public function onTimezoneChanged(UserEvent $event): void
{
$user = $event->getUser();

if ($user instanceof LocaleAwareInterface && null !== $event->getRequest()) {
if ($user instanceof LocaleAwareUser && null !== $event->getRequest()) {
$this->setTimezone($event->getRequest(), $user);
}
}
Expand All @@ -106,12 +106,12 @@ public function onLocaleChanged(UserEvent $event): void
{
$user = $event->getUser();

if ($user instanceof LocaleAwareInterface && null !== $event->getRequest()) {
if ($user instanceof LocaleAwareUser && null !== $event->getRequest()) {
$this->setLocale($event->getRequest(), $user);
}
}

private function setLocale(Request $request, LocaleAwareInterface $user): void
private function setLocale(Request $request, LocaleAwareUser $user): void
{
if (!$request->hasSession()) {
return;
Expand All @@ -130,7 +130,7 @@ private function setLocale(Request $request, LocaleAwareInterface $user): void
$session->set('_locale', $locale);
}

private function setTimezone(Request $request, LocaleAwareInterface $user): void
private function setTimezone(Request $request, LocaleAwareUser $user): void
{
if (!$request->hasSession()) {
return;
Expand Down

0 comments on commit def81b5

Please sign in to comment.