Renamed "devices" permission to "projects"

This commit is contained in:
Jan Böhmer 2023-01-08 20:10:58 +01:00
parent f2dfe12087
commit 7b6a906d98
19 changed files with 157 additions and 23 deletions

View file

@ -158,4 +158,61 @@ class PermissionDataTest extends TestCase
$data->setSchemaVersion(12345);
$this->assertEquals(12345, $data->getSchemaVersion());
}
public function testIsAnyOperationOfPermissionSet()
{
$data = new PermissionData();
//Initially no operation of any permission is set
$this->assertFalse($data->isAnyOperationOfPermissionSet('perm1'));
$data->setPermissionValue('perm1', 'op1', PermissionData::ALLOW);
$this->assertTrue($data->isAnyOperationOfPermissionSet('perm1'));
}
public function testGetAllDefinedOperationsOfPermission()
{
$data = new PermissionData();
$this->assertEmpty($data->getAllDefinedOperationsOfPermission('perm1'));
$data->setPermissionValue('perm1', 'op1', PermissionData::ALLOW);
$data->setPermissionValue('perm1', 'op2', PermissionData::DISALLOW);
$this->assertEquals([
'op1' => PermissionData::ALLOW, 'op2' => PermissionData::DISALLOW,
],
$data->getAllDefinedOperationsOfPermission('perm1'));
}
public function testSetAllOperationsOfPermission()
{
$data = new PermissionData();
$data->setAllOperationsOfPermission('perm1', [
'op1' => PermissionData::ALLOW,
'op2' => PermissionData::DISALLOW,
]);
$this->assertEquals([
'op1' => PermissionData::ALLOW, 'op2' => PermissionData::DISALLOW,
],
$data->getAllDefinedOperationsOfPermission('perm1'));
}
public function testRemovePermission()
{
$data = new PermissionData();
$data->setPermissionValue('perm1', 'op1', PermissionData::ALLOW);
$data->setPermissionValue('perm1', 'op2', PermissionData::DISALLOW);
$this->assertTrue($data->isPermissionSet('perm1', 'op1'));
$this->assertTrue($data->isPermissionSet('perm1', 'op2'));
$data->removePermission('perm1');
$this->assertFalse($data->isPermissionSet('perm1', 'op1'));
$this->assertFalse($data->isPermissionSet('perm1', 'op2'));
}
}

View file

@ -97,4 +97,20 @@ class PermissionSchemaUpdaterTest extends WebTestCase
self::assertEquals(PermissionData::ALLOW, $user->getPermissions()->getPermissionValue('parts_stock', 'add'));
self::assertEquals(PermissionData::ALLOW, $user->getPermissions()->getPermissionValue('parts_stock', 'withdraw'));
}
public function testUpgradeSchemaToVersion2()
{
$perm_data = new PermissionData();
$perm_data->setSchemaVersion(1);
$perm_data->setPermissionValue('devices', 'read', PermissionData::ALLOW);
$perm_data->setPermissionValue('devices', 'edit', PermissionData::INHERIT);
$perm_data->setPermissionValue('devices', 'delete', PermissionData::DISALLOW);
$user = new TestPermissionHolder($perm_data);
//After the upgrade all operations should be available under the name "projects" with the same values
self::assertTrue($this->service->upgradeSchema($user, 2));
self::assertEquals(PermissionData::ALLOW, $user->getPermissions()->getPermissionValue('projects', 'read'));
self::assertEquals(PermissionData::INHERIT, $user->getPermissions()->getPermissionValue('projects', 'edit'));
self::assertEquals(PermissionData::DISALLOW, $user->getPermissions()->getPermissionValue('projects', 'delete'));
}
}