remove default role from user filter and role select (#993)
This commit is contained in:
@@ -9,9 +9,11 @@
|
||||
|
||||
namespace App\Form\Type;
|
||||
|
||||
use App\Entity\User;
|
||||
use App\Security\RoleService;
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
|
||||
use Symfony\Component\OptionsResolver\Options;
|
||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
|
||||
/**
|
||||
@@ -22,7 +24,7 @@ class UserRoleType extends AbstractType
|
||||
/**
|
||||
* @var RoleService
|
||||
*/
|
||||
protected $roles;
|
||||
private $roles;
|
||||
|
||||
public function __construct(RoleService $roles)
|
||||
{
|
||||
@@ -34,15 +36,23 @@ class UserRoleType extends AbstractType
|
||||
*/
|
||||
public function configureOptions(OptionsResolver $resolver)
|
||||
{
|
||||
$roles = [];
|
||||
foreach ($this->roles->getAvailableNames() as $name) {
|
||||
$roles[$name] = $name;
|
||||
}
|
||||
|
||||
$resolver->setDefaults([
|
||||
'label' => 'label.roles',
|
||||
'choices' => $roles,
|
||||
'include_default' => false,
|
||||
]);
|
||||
|
||||
$resolver->setDefault('choices', function (Options $options) {
|
||||
$roles = [];
|
||||
foreach ($this->roles->getAvailableNames() as $name) {
|
||||
$roles[$name] = $name;
|
||||
}
|
||||
|
||||
if ($options['include_default'] !== true && isset($roles[User::DEFAULT_ROLE])) {
|
||||
unset($roles[User::DEFAULT_ROLE]);
|
||||
}
|
||||
|
||||
return $roles;
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -26,10 +26,10 @@ class UserRolesType extends AbstractType
|
||||
public function buildForm(FormBuilderInterface $builder, array $options)
|
||||
{
|
||||
$builder
|
||||
// string[]
|
||||
->add('roles', UserRoleType::class, [
|
||||
'label' => 'label.roles',
|
||||
'multiple' => true,
|
||||
'expanded' => true,
|
||||
])
|
||||
;
|
||||
}
|
||||
|
||||
@@ -298,8 +298,8 @@ class ProfileControllerTest extends ControllerBaseTest
|
||||
$form = $client->getCrawler()->filter('form[name=user_roles]')->form();
|
||||
$client->submit($form, [
|
||||
'user_roles[roles]' => [
|
||||
'ROLE_TEAMLEAD',
|
||||
'ROLE_SUPER_ADMIN',
|
||||
0 => 'ROLE_TEAMLEAD',
|
||||
2 => 'ROLE_SUPER_ADMIN',
|
||||
]
|
||||
]);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user