remove default role from user filter and role select (#993)
This commit is contained in:
@@ -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;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -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,
|
||||||
])
|
])
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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',
|
||||||
]
|
]
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user