Next major version 2 with PHP 8.1, Symfony 6, Tabler UI, 2FA ... (#2902)
This commit is contained in:
@@ -13,7 +13,6 @@ use App\DataFixtures\UserFixtures;
|
||||
use App\Entity\Role;
|
||||
use App\Entity\RolePermission;
|
||||
use App\Entity\User;
|
||||
use Symfony\Component\Security\Csrf\CsrfToken;
|
||||
|
||||
/**
|
||||
* @group integration
|
||||
@@ -35,19 +34,22 @@ class PermissionControllerTest extends ControllerBaseTest
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_SUPER_ADMIN);
|
||||
$this->assertAccessIsGranted($client, '/admin/permissions');
|
||||
$this->assertHasDataTable($client);
|
||||
$this->assertDataTableRowCount($client, 'datatable_user_admin_permissions', 132);
|
||||
$this->assertDataTableRowCount($client, 'datatable_user_admin_permissions', 129);
|
||||
$this->assertPageActions($client, [
|
||||
//'back' => $this->createUrl('/admin/user/'),
|
||||
'create modal-ajax-form' => $this->createUrl('/admin/permissions/roles/create'),
|
||||
'help' => 'https://www.kimai.org/documentation/permissions.html'
|
||||
]);
|
||||
|
||||
$content = $client->getResponse()->getContent();
|
||||
$this->assertTableHeader($content);
|
||||
}
|
||||
|
||||
private function assertTableHeader(string $content): void
|
||||
{
|
||||
// the english translation instead of the real system user role names
|
||||
self::assertStringContainsString('<th data-field="User" class="alwaysVisible text-center">', $content);
|
||||
self::assertStringContainsString('<th data-field="Teamlead" class="alwaysVisible text-center">', $content);
|
||||
self::assertStringContainsString('<th data-field="Administrator" class="alwaysVisible text-center">', $content);
|
||||
self::assertStringContainsString('<th data-field="System-Admin" class="alwaysVisible text-center">', $content);
|
||||
self::assertStringContainsString('<th data-field="ROLE_USER" class="alwaysVisible text-center bg-green-lt col_ROLE_USER">', $content);
|
||||
self::assertStringContainsString('<th data-field="ROLE_TEAMLEAD" class="alwaysVisible text-center col_ROLE_TEAMLEAD">', $content);
|
||||
self::assertStringContainsString('<th data-field="ROLE_ADMIN" class="alwaysVisible text-center col_ROLE_ADMIN">', $content);
|
||||
self::assertStringContainsString('<th data-field="ROLE_SUPER_ADMIN" class="alwaysVisible text-center bg-orange-lt col_ROLE_SUPER_ADMIN">', $content);
|
||||
}
|
||||
|
||||
public function testCreateRoleIsSecured()
|
||||
@@ -74,12 +76,7 @@ class PermissionControllerTest extends ControllerBaseTest
|
||||
$client->followRedirect();
|
||||
|
||||
$content = $client->getResponse()->getContent();
|
||||
// the english translation instead of the real system user role names
|
||||
self::assertStringContainsString('<th data-field="User" class="alwaysVisible text-center">', $content);
|
||||
self::assertStringContainsString('<th data-field="Teamlead" class="alwaysVisible text-center">', $content);
|
||||
self::assertStringContainsString('<th data-field="Administrator" class="alwaysVisible text-center">', $content);
|
||||
self::assertStringContainsString('<th data-field="System-Admin" class="alwaysVisible text-center">', $content);
|
||||
self::assertStringContainsString('<th data-field="TEST_ROLE" class="alwaysVisible text-center">', $content);
|
||||
$this->assertTableHeader($content);
|
||||
}
|
||||
|
||||
public function testDeleteRoleIsSecured()
|
||||
@@ -115,7 +112,7 @@ class PermissionControllerTest extends ControllerBaseTest
|
||||
}
|
||||
|
||||
$content = $client->getResponse()->getContent();
|
||||
self::assertStringContainsString('<th data-field="TEST_ROLE" class="alwaysVisible text-center">', $content);
|
||||
self::assertStringContainsString('<th data-field="TEST_ROLE" class="alwaysVisible text-center col_TEST_ROLE">', $content);
|
||||
|
||||
// add user to role
|
||||
$this->request($client, '/profile/' . UserFixtures::USERNAME_USER . '/roles');
|
||||
@@ -134,9 +131,11 @@ class PermissionControllerTest extends ControllerBaseTest
|
||||
$user = $this->getUserByName(UserFixtures::USERNAME_USER);
|
||||
$this->assertEquals(['ROLE_TEAMLEAD', 'ROLE_SUPER_ADMIN', 'TEST_ROLE', 'ROLE_USER'], $user->getRoles());
|
||||
|
||||
/** @var CsrfToken $token */
|
||||
$token = static::$kernel->getContainer()->get('security.csrf.token_manager')->getToken('user_role_permissions');
|
||||
$this->request($client, '/admin/permissions/roles/' . $id . '/delete/' . $token->getValue());
|
||||
$this->request($client, '/admin/permissions');
|
||||
$node = $client->getCrawler()->filter('table.dataTable thead th a.confirmation-link');
|
||||
self::assertEquals(1, $node->count());
|
||||
|
||||
$this->request($client, $node->attr('href'));
|
||||
$this->assertIsRedirect($client, $this->createUrl('/admin/permissions'));
|
||||
$client->followRedirect();
|
||||
|
||||
@@ -185,17 +184,17 @@ class PermissionControllerTest extends ControllerBaseTest
|
||||
}
|
||||
}
|
||||
|
||||
// create the permission
|
||||
$token = static::$kernel->getContainer()->get('security.csrf.token_manager')->getToken('user_role_permissions');
|
||||
$this->request($client, '/admin/permissions/roles/' . $id . '/view_user/1/' . $token->getValue(), 'POST');
|
||||
$token = $client->getCrawler()->filter('div#permission-token')->attr('data-value');
|
||||
|
||||
// create the permission
|
||||
$this->request($client, '/admin/permissions/roles/' . $id . '/view_user/1/' . $token, 'POST');
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
$result = json_decode($client->getResponse()->getContent(), true);
|
||||
self::assertIsArray($result);
|
||||
self::assertArrayHasKey('token', $result);
|
||||
|
||||
$rolePermissions = $em->getRepository(RolePermission::class)->findAll();
|
||||
$this->assertEquals(1, \count($rolePermissions));
|
||||
$this->assertCount(1, $rolePermissions);
|
||||
$permission = $rolePermissions[0];
|
||||
self::assertInstanceOf(RolePermission::class, $permission);
|
||||
self::assertEquals('view_user', $permission->getPermission());
|
||||
@@ -207,8 +206,7 @@ class PermissionControllerTest extends ControllerBaseTest
|
||||
$em->clear();
|
||||
|
||||
// update the permission
|
||||
$token = static::$kernel->getContainer()->get('security.csrf.token_manager')->getToken('user_role_permissions');
|
||||
$this->request($client, '/admin/permissions/roles/' . $id . '/view_user/0/' . $token->getValue(), 'POST');
|
||||
$this->request($client, '/admin/permissions/roles/' . $id . '/view_user/0/' . $result['token'], 'POST');
|
||||
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
$result = json_decode($client->getResponse()->getContent(), true);
|
||||
|
||||
Reference in New Issue
Block a user