private function getUserForm(Entity\Users $user, $addusername = false)
{
// Start building the form
$form = $this->createFormBuilder(FormType::class, $user);
// Username goes first
if ($addusername) {
$form->add('username', TextType::class, ['constraints' => [new Assert\NotBlank(), new Assert\Length(['min' => 2, 'max' => 32])], 'label' => Trans::__('page.edit-users.label.username'), 'attr' => ['placeholder' => Trans::__('page.edit-users.placeholder.username')]]);
}
// Add the other fields. Regarding the autocomplete on the passwords,
// see: https://bugs.chromium.org/p/chromium/issues/detail?id=468153#c150
$form->add('id', HiddenType::class)->add('password', PasswordType::class, ['required' => false, 'label' => Trans::__('page.edit-users.label.password'), 'attr' => ['placeholder' => Trans::__('page.edit-users.placeholder.password'), 'autocomplete' => 'new-password']])->add('password_confirmation', PasswordType::class, ['required' => false, 'label' => Trans::__('page.edit-users.label.password-confirm'), 'attr' => ['placeholder' => Trans::__('page.edit-users.placeholder.password-confirm'), 'autocomplete' => 'new-password']])->add('email', TextType::class, ['constraints' => new Assert\Email(), 'label' => Trans::__('page.edit-users.label.email'), 'attr' => ['placeholder' => Trans::__('page.edit-users.placeholder.email')]])->add('displayname', TextType::class, ['constraints' => [new Assert\NotBlank(), new Assert\Length(['min' => 2, 'max' => 32])], 'label' => Trans::__('page.edit-users.label.display-name'), 'attr' => ['placeholder' => Trans::__('page.edit-users.placeholder.displayname')]]);
return $form;
}