Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 1db8f89

Browse filesBrowse files
committed
!squash addressing minor PR comments
1 parent ced7cd9 commit 1db8f89
Copy full SHA for 1db8f89

File tree

4 files changed

+14
-23
lines changed
Filter options

4 files changed

+14
-23
lines changed

‎src/Symfony/Bundle/SecurityBundle/Tests/Functional/SecurityTest.php

Copy file name to clipboardExpand all lines: src/Symfony/Bundle/SecurityBundle/Tests/Functional/SecurityTest.php
+12-6Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,22 +37,28 @@ public function testServiceIsFunctional()
3737
public function userWillBeMarkedAsChangedIfRolesHasChangedProvider()
3838
{
3939
return [
40-
[User::class],
41-
[UserWithoutEquatable::class],
40+
[
41+
new User('user1', 'test', ['ROLE_ADMIN']),
42+
new User('user1', 'test', ['ROLE_USER']),
43+
],
44+
[
45+
new UserWithoutEquatable('user1', 'test', ['ROLE_ADMIN']),
46+
new UserWithoutEquatable('user1', 'test', ['ROLE_USER']),
47+
],
4248
];
4349
}
4450

4551
/**
4652
* @dataProvider userWillBeMarkedAsChangedIfRolesHasChangedProvider
4753
*/
48-
public function testUserWillBeMarkedAsChangedIfRolesHasChanged($userClass)
54+
public function testUserWillBeMarkedAsChangedIfRolesHasChanged(UserInterface $userWithAdminRole, UserInterface $userWithoutAdminRole)
4955
{
5056
$client = $this->createClient(['test_case' => 'AbstractTokenCompareRoles', 'root_config' => 'config.yml']);
5157
$client->disableReboot();
5258

5359
/** @var ArrayUserProvider $userProvider */
5460
$userProvider = static::$kernel->getContainer()->get('security.user.provider.array');
55-
$userProvider->addUser(new $userClass('user1', 'test', ['ROLE_ADMIN']));
61+
$userProvider->addUser($userWithAdminRole);
5662

5763
$client->request('POST', '/login', [
5864
'_username' => 'user1',
@@ -63,8 +69,8 @@ public function testUserWillBeMarkedAsChangedIfRolesHasChanged($userClass)
6369
$client->request('GET', '/admin');
6470
$this->assertEquals(200, $client->getResponse()->getStatusCode());
6571

66-
// revoking ROLE_ADMIN from user1
67-
$userProvider->setUser('user1', new $userClass('user1', 'test', ['ROLE_USER']));
72+
// updating user provider with same user but revoked ROLE_ADMIN from user1
73+
$userProvider->setUser('user1', $userWithoutAdminRole);
6874

6975
// user1 has lost ROLE_ADMIN and MUST be redirected away from secure page
7076
$client->request('GET', '/admin');

‎src/Symfony/Bundle/SecurityBundle/Tests/Functional/app/AbstractTokenCompareRoles/routing.yml

Copy file name to clipboardExpand all lines: src/Symfony/Bundle/SecurityBundle/Tests/Functional/app/AbstractTokenCompareRoles/routing.yml
-1Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,3 @@ logout:
66

77
admin_bundle:
88
resource: '@SecuredPageBundle/Resources/config/routing.yml'
9-

‎src/Symfony/Component/Security/Core/Authentication/Token/AbstractToken.php

Copy file name to clipboardExpand all lines: src/Symfony/Component/Security/Core/Authentication/Token/AbstractToken.php
+1-7Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -318,13 +318,7 @@ private function hasUserChanged(UserInterface $user)
318318
}
319319

320320
$userRoles = array_map('strval', (array) $user->getRoles());
321-
$rolesChanged =
322-
(bool) \count(
323-
array_merge(
324-
array_diff($this->getRoleNames(), $userRoles),
325-
array_diff($userRoles, $this->getRoleNames())
326-
)
327-
);
321+
$rolesChanged = \count($userRoles) !== \count($this->getRoleNames()) || \count($userRoles) !== \count(array_intersect($userRoles, $this->getRoleNames()));
328322

329323
if ($rolesChanged) {
330324
return true;

‎src/Symfony/Component/Security/Core/User/User.php

Copy file name to clipboardExpand all lines: src/Symfony/Component/Security/Core/User/User.php
+1-9Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -137,15 +137,7 @@ public function isEqualTo(UserInterface $user)
137137

138138
$currentRoles = array_map('strval', (array) $this->getRoles());
139139
$newRoles = array_map('strval', (array) $user->getRoles());
140-
141-
$rolesChanged =
142-
(bool) \count(
143-
array_merge(
144-
array_diff($currentRoles, $newRoles),
145-
array_diff($newRoles, $currentRoles)
146-
)
147-
);
148-
140+
$rolesChanged = \count($currentRoles) !== \count($newRoles) || \count($currentRoles) !== \count(array_intersect($currentRoles, $newRoles));
149141
if ($rolesChanged) {
150142
return false;
151143
}

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.