allow to set api token when creating user via API (#3380)
This commit is contained in:
@@ -226,11 +226,17 @@ final class UserController extends BaseApiController
|
|||||||
$password = $this->encoder->encodePassword($user, $user->getPlainPassword());
|
$password = $this->encoder->encodePassword($user, $user->getPlainPassword());
|
||||||
$user->setPassword($password);
|
$user->setPassword($password);
|
||||||
|
|
||||||
|
if ($user->getPlainApiToken() !== null) {
|
||||||
|
$user->setApiToken($this->encoder->encodePassword($user, $user->getPlainApiToken()));
|
||||||
|
}
|
||||||
|
|
||||||
$this->repository->saveUser($user);
|
$this->repository->saveUser($user);
|
||||||
|
|
||||||
$view = new View($user, 200);
|
$view = new View($user, 200);
|
||||||
$view->getContext()->setGroups(self::GROUPS_ENTITY);
|
$view->getContext()->setGroups(self::GROUPS_ENTITY);
|
||||||
|
|
||||||
|
$user->eraseCredentials();
|
||||||
|
|
||||||
return $this->viewHandler->handle($view);
|
return $this->viewHandler->handle($view);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -156,8 +156,9 @@ class User implements UserInterface, EquatableInterface, \Serializable
|
|||||||
*/
|
*/
|
||||||
private $apiToken;
|
private $apiToken;
|
||||||
/**
|
/**
|
||||||
* @var string
|
* @var string|null
|
||||||
* @internal to be set via form, must not be persisted
|
* @internal to be set via form, must not be persisted
|
||||||
|
*
|
||||||
* @Assert\NotBlank(groups={"ApiTokenUpdate"})
|
* @Assert\NotBlank(groups={"ApiTokenUpdate"})
|
||||||
* @Assert\Length(min="8", max="60", groups={"ApiTokenUpdate"})
|
* @Assert\Length(min="8", max="60", groups={"ApiTokenUpdate"})
|
||||||
*/
|
*/
|
||||||
@@ -848,6 +849,7 @@ class User implements UserInterface, EquatableInterface, \Serializable
|
|||||||
public function eraseCredentials()
|
public function eraseCredentials()
|
||||||
{
|
{
|
||||||
$this->plainPassword = null;
|
$this->plainPassword = null;
|
||||||
|
$this->plainApiToken = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -24,7 +24,9 @@ class UserApiCreateForm extends UserCreateType
|
|||||||
{
|
{
|
||||||
parent::buildForm($builder, $options);
|
parent::buildForm($builder, $options);
|
||||||
|
|
||||||
|
if ($builder->has('plainPassword')) {
|
||||||
$builder->remove('plainPassword');
|
$builder->remove('plainPassword');
|
||||||
|
}
|
||||||
|
|
||||||
$builder->add('plainPassword', PasswordType::class, [
|
$builder->add('plainPassword', PasswordType::class, [
|
||||||
'required' => true,
|
'required' => true,
|
||||||
@@ -35,6 +37,19 @@ class UserApiCreateForm extends UserCreateType
|
|||||||
],
|
],
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
if ($builder->has('plainApiToken')) {
|
||||||
|
$builder->remove('plainApiToken');
|
||||||
|
}
|
||||||
|
|
||||||
|
$builder->add('plainApiToken', PasswordType::class, [
|
||||||
|
'required' => false,
|
||||||
|
'label' => 'label.api_token',
|
||||||
|
'documentation' => [
|
||||||
|
'type' => 'string',
|
||||||
|
'description' => 'Plain API token',
|
||||||
|
],
|
||||||
|
]);
|
||||||
|
|
||||||
if ($options['include_roles']) {
|
if ($options['include_roles']) {
|
||||||
$builder->add('roles', UserRoleType::class, [
|
$builder->add('roles', UserRoleType::class, [
|
||||||
'label' => 'label.roles',
|
'label' => 'label.roles',
|
||||||
|
|||||||
Reference in New Issue
Block a user