removed active flag in user preferences form for own profile (#696)

This commit is contained in:
Simone Gasparini
2019-04-16 17:30:51 +02:00
committed by Kevin Papst
parent 0d6b8486c4
commit 136df3724f
4 changed files with 47 additions and 5 deletions

View File

@@ -320,7 +320,8 @@ class ProfileController extends AbstractController
$user,
[
'action' => $this->generateUrl('user_profile_edit', ['username' => $user->getUsername()]),
'method' => 'POST'
'method' => 'POST',
'include_active_flag' => ($user->getId() !== $this->getUser()->getId())
]
);
}

View File

@@ -189,7 +189,8 @@ class UserController extends AbstractController
{
return $this->createForm(UserCreateType::class, $user, [
'action' => $this->generateUrl('admin_user_create'),
'method' => 'POST'
'method' => 'POST',
'include_active_flag' => true
]);
}
}

View File

@@ -16,12 +16,14 @@ use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface;
/**
* Defines the form used to edit the profile of a User.
*/
class UserEditType extends AbstractType
{
/**
* {@inheritdoc}
*/
@@ -43,10 +45,15 @@ class UserEditType extends AbstractType
->add('email', EmailType::class, [
'label' => 'label.email',
])
->add('enabled', YesNoType::class, [
'label' => 'label.active',
])
;
if ($options['include_active_flag']) {
$builder
->add('enabled', YesNoType::class, [
'label' => 'label.active',
])
;
}
}
/**
@@ -59,6 +66,7 @@ class UserEditType extends AbstractType
'csrf_protection' => true,
'csrf_field_name' => '_token',
'csrf_token_id' => 'edit_user_profile',
'include_active_flag' => false,
]);
}
}

View File

@@ -76,6 +76,38 @@ class ProfileControllerTest extends ControllerBaseTest
$this->assertEquals('john_user@example.com', $user->getEmail());
$this->assertTrue($user->isEnabled());
$form = $client->getCrawler()->filter('form[name=user_edit]')->form();
$client->submit($form, [
'user_edit' => [
'alias' => 'Johnny',
'title' => 'Code Monkey',
'avatar' => '/fake/image.jpg',
'email' => 'updated@example.com',
]
]);
$this->assertIsRedirect($client, $this->createUrl('/profile/' . urlencode(UserFixtures::USERNAME_USER) . '/edit'));
$client->followRedirect();
$this->assertTrue($client->getResponse()->isSuccessful());
$this->assertHasFlashSuccess($client);
$em = $client->getContainer()->get('doctrine.orm.entity_manager');
$user = $this->getUserByRole($em, User::ROLE_USER);
$this->assertEquals(UserFixtures::USERNAME_USER, $user->getUsername());
$this->assertEquals('Johnny', $user->getAlias());
$this->assertEquals('Code Monkey', $user->getTitle());
$this->assertEquals('/fake/image.jpg', $user->getAvatar());
$this->assertEquals('updated@example.com', $user->getEmail());
$this->assertTrue($user->isEnabled());
}
public function testEditActionWithActiveFlag()
{
$client = $this->getClientForAuthenticatedUser(User::ROLE_SUPER_ADMIN);
$this->request($client, '/profile/' . UserFixtures::USERNAME_USER . '/edit');
$form = $client->getCrawler()->filter('form[name=user_edit]')->form();
$client->submit($form, [
'user_edit' => [