Add users management UI

- remove the “add a user” from the config page
- add a CRUD on user
- fix some missing translations (+ bad indentation)
This commit is contained in:
Jeremy Benoist
2016-09-30 20:09:06 +02:00
parent 52c1fc7449
commit 152fcccd44
29 changed files with 956 additions and 223 deletions

View File

@ -0,0 +1,58 @@
<?php
namespace Wallabag\UserBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\PasswordType;
use Symfony\Component\Form\Extension\Core\Type\RepeatedType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Validator\Constraints;
class NewUserType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('username', TextType::class, [
'required' => true,
'label' => 'user.form.username_label',
])
->add('plainPassword', RepeatedType::class, [
'type' => PasswordType::class,
'invalid_message' => 'validator.password_must_match',
'first_options' => ['label' => 'user.form.password_label'],
'second_options' => ['label' => 'user.form.repeat_new_password_label'],
'constraints' => [
new Constraints\Length([
'min' => 8,
'minMessage' => 'validator.password_too_short',
]),
new Constraints\NotBlank(),
],
'label' => 'user.form.plain_password_label',
])
->add('email', EmailType::class, [
'label' => 'user.form.email_label',
])
->add('save', SubmitType::class, [
'label' => 'user.form.save',
])
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => 'Wallabag\UserBundle\Entity\User',
]);
}
public function getBlockPrefix()
{
return 'new_user';
}
}

View File

@ -0,0 +1,61 @@
<?php
namespace Wallabag\UserBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
class UserType extends AbstractType
{
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name', TextType::class, [
'required' => false,
'label' => 'user.form.name_label',
])
->add('username', TextType::class, [
'required' => true,
'label' => 'user.form.username_label',
])
->add('email', EmailType::class, [
'required' => true,
'label' => 'user.form.email_label',
])
->add('enabled', CheckboxType::class, [
'required' => false,
'label' => 'user.form.enabled_label',
])
->add('locked', CheckboxType::class, [
'required' => false,
'label' => 'user.form.locked_label',
])
->add('twoFactorAuthentication', CheckboxType::class, [
'required' => false,
'label' => 'user.form.twofactor_label',
])
->add('save', SubmitType::class, [
'label' => 'user.form.save',
])
;
}
/**
* @param OptionsResolver $resolver
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'Wallabag\UserBundle\Entity\User',
));
}
}