Skip to content

Commit

Permalink
Deprecate user plainPassword in favor of using UserManipulator
Browse files Browse the repository at this point in the history
  • Loading branch information
core23 committed Mar 6, 2024
1 parent f6e45db commit 9ca23d3
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 3 deletions.
2 changes: 1 addition & 1 deletion composer.json
Expand Up @@ -38,7 +38,7 @@
"require": {
"php": "^8.1",
"ext-json": "*",
"nucleos/user-bundle": "^3.3",
"nucleos/user-bundle": "^3.4",
"psr/container": "^1.0 || ^2.0",
"psr/log": "^1.0 || ^2.0 || ^3.0",
"sonata-project/admin-bundle": "^4.8.1",
Expand Down
24 changes: 22 additions & 2 deletions src/Admin/Model/UserAdmin.php
Expand Up @@ -18,6 +18,7 @@
use Nucleos\UserBundle\Model\LocaleAwareUser;
use Nucleos\UserBundle\Model\UserInterface;
use Nucleos\UserBundle\Model\UserManager;
use Nucleos\UserBundle\Util\UserManipulator;
use Sonata\AdminBundle\Admin\AbstractAdmin;
use Sonata\AdminBundle\Datagrid\DatagridMapper;
use Sonata\AdminBundle\Datagrid\ListMapper;
Expand All @@ -35,11 +36,14 @@ abstract class UserAdmin extends AbstractAdmin
{
protected UserManager $userManager;

public function __construct(UserManager $userManager)
private ?UserManipulator $userManipulator;

public function __construct(UserManager $userManager, ?UserManipulator $userManipulator = null)
{
parent::__construct();

$this->userManager = $userManager;
$this->userManager = $userManager;
$this->userManipulator = $userManipulator;
}

public function preUpdate($object): void
Expand All @@ -49,6 +53,11 @@ public function preUpdate($object): void
}
}

protected function postUpdate(object $object): void
{
$this->updatePassword($object);
}

protected function configureFormOptions(array &$formOptions): void
{
$formOptions['validation_groups'] = ['User', $this->isNewInstance() ? 'Registration' : 'Profile'];
Expand Down Expand Up @@ -191,6 +200,17 @@ protected function configureFormFields(FormMapper $form): void
;
}

private function updatePassword(UserInterface $user): void
{
$plainPassword = $user->getPlainPassword();

if (null === $plainPassword) {
return;
}

$this->userManipulator?->changePassword($user->getUsername(), $plainPassword);
}

private function isNewInstance(): bool
{
return !$this->hasSubject() || null === $this->id($this->getSubject());
Expand Down
1 change: 1 addition & 0 deletions src/Resources/config/admin_mongodb.php
Expand Up @@ -35,6 +35,7 @@
])
->args([
service('nucleos_user.user_manager'),
service('nucleos_user.util.user_manipulator'),
])
->call('setTranslationDomain', [
'%nucleos_user_admin.admin.group.translation_domain%',
Expand Down
1 change: 1 addition & 0 deletions src/Resources/config/admin_orm.php
Expand Up @@ -35,6 +35,7 @@
])
->args([
service('nucleos_user.user_manager'),
service('nucleos_user.util.user_manipulator'),
])
->call('setTranslationDomain', [
'%nucleos_user_admin.admin.group.translation_domain%',
Expand Down

0 comments on commit 9ca23d3

Please sign in to comment.