/** * @param UserEntity $userEntity * @param array $parameters */ public function updateUser(UserEntity $userEntity, array $parameters) { $options = [UserValidator::OPTION_SKIP_PASSWORD_VALIDATION]; //todo : refactored this : $parameters = array_merge($userEntity->toArray(), $parameters); if ($userEntity->getEmail() === $parameters['email']) { $options[] = UserValidator::OPTION_SKIP_EMAIL_UNIQUENESS; } $this->getUserValidator()->validateParameters($parameters, $options); if ($userEntity->getEmail() !== $parameters['email']) { $userEntity->setPendingEmail($parameters['email']); (new EmailConfirmationController($this->getContainer()))->emailUpdated($userEntity); } $userEntity->setName($parameters['name'])->setPhone($parameters['phone']); $this->getEntityManager()->persist($userEntity); $this->getEntityManager()->flush($userEntity); }