remove default role from user filter and role select (#993)

This commit is contained in:
Kevin Papst
2019-08-02 08:31:45 +02:00
committed by GitHub
parent 8e06f94bdd
commit 66594b286a
3 changed files with 20 additions and 10 deletions

View File

@@ -9,9 +9,11 @@
namespace App\Form\Type; namespace App\Form\Type;
use App\Entity\User;
use App\Security\RoleService; use App\Security\RoleService;
use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType; use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\OptionsResolver\Options;
use Symfony\Component\OptionsResolver\OptionsResolver; use Symfony\Component\OptionsResolver\OptionsResolver;
/** /**
@@ -22,7 +24,7 @@ class UserRoleType extends AbstractType
/** /**
* @var RoleService * @var RoleService
*/ */
protected $roles; private $roles;
public function __construct(RoleService $roles) public function __construct(RoleService $roles)
{ {
@@ -34,15 +36,23 @@ class UserRoleType extends AbstractType
*/ */
public function configureOptions(OptionsResolver $resolver) public function configureOptions(OptionsResolver $resolver)
{ {
$resolver->setDefaults([
'label' => 'label.roles',
'include_default' => false,
]);
$resolver->setDefault('choices', function (Options $options) {
$roles = []; $roles = [];
foreach ($this->roles->getAvailableNames() as $name) { foreach ($this->roles->getAvailableNames() as $name) {
$roles[$name] = $name; $roles[$name] = $name;
} }
$resolver->setDefaults([ if ($options['include_default'] !== true && isset($roles[User::DEFAULT_ROLE])) {
'label' => 'label.roles', unset($roles[User::DEFAULT_ROLE]);
'choices' => $roles, }
]);
return $roles;
});
} }
/** /**

View File

@@ -26,10 +26,10 @@ class UserRolesType extends AbstractType
public function buildForm(FormBuilderInterface $builder, array $options) public function buildForm(FormBuilderInterface $builder, array $options)
{ {
$builder $builder
// string[]
->add('roles', UserRoleType::class, [ ->add('roles', UserRoleType::class, [
'label' => 'label.roles', 'label' => 'label.roles',
'multiple' => true, 'multiple' => true,
'expanded' => true,
]) ])
; ;
} }

View File

@@ -298,8 +298,8 @@ class ProfileControllerTest extends ControllerBaseTest
$form = $client->getCrawler()->filter('form[name=user_roles]')->form(); $form = $client->getCrawler()->filter('form[name=user_roles]')->form();
$client->submit($form, [ $client->submit($form, [
'user_roles[roles]' => [ 'user_roles[roles]' => [
'ROLE_TEAMLEAD', 0 => 'ROLE_TEAMLEAD',
'ROLE_SUPER_ADMIN', 2 => 'ROLE_SUPER_ADMIN',
] ]
]); ]);