| @@ 1708-1739 (lines=32) @@ | ||
| 1705 | * @see \eZ\Publish\API\Repository\RoleService::removePolicyByRoleDraft() |
|
| 1706 | * @depends eZ\Publish\API\Repository\Tests\RoleServiceTest::testAddPolicyByRoleDraft |
|
| 1707 | */ |
|
| 1708 | public function testRemovePolicyByRoleDraft() |
|
| 1709 | { |
|
| 1710 | $repository = $this->getRepository(); |
|
| 1711 | ||
| 1712 | /* BEGIN: Use Case */ |
|
| 1713 | $roleService = $repository->getRoleService(); |
|
| 1714 | ||
| 1715 | // Instantiate a new role create |
|
| 1716 | $roleCreate = $roleService->newRoleCreateStruct('newRole'); |
|
| 1717 | ||
| 1718 | // @todo uncomment when support for multilingual names and descriptions is added EZP-24776 |
|
| 1719 | // $roleCreate->mainLanguageCode = 'eng-US'; |
|
| 1720 | ||
| 1721 | // Create a new role with two policies |
|
| 1722 | $roleDraft = $roleService->createRole($roleCreate); |
|
| 1723 | $roleService->addPolicyByRoleDraft( |
|
| 1724 | $roleDraft, |
|
| 1725 | $roleService->newPolicyCreateStruct('content', 'create') |
|
| 1726 | ); |
|
| 1727 | $roleService->addPolicyByRoleDraft( |
|
| 1728 | $roleDraft, |
|
| 1729 | $roleService->newPolicyCreateStruct('content', 'delete') |
|
| 1730 | ); |
|
| 1731 | ||
| 1732 | // Delete all policies from the new role |
|
| 1733 | foreach ($roleDraft->getPolicies() as $policy) { |
|
| 1734 | $roleDraft = $roleService->removePolicyByRoleDraft($roleDraft, $policy); |
|
| 1735 | } |
|
| 1736 | /* END: Use Case */ |
|
| 1737 | ||
| 1738 | $this->assertSame([], $roleDraft->getPolicies()); |
|
| 1739 | } |
|
| 1740 | ||
| 1741 | /** |
|
| 1742 | * Test for the deletePolicy() method. |
|
| @@ 2930-2959 (lines=30) @@ | ||
| 2927 | * @see \eZ\Publish\API\Repository\RoleService::publishRoleDraft() |
|
| 2928 | * @depends eZ\Publish\API\Repository\Tests\RoleServiceTest::testCreateRoleDraft |
|
| 2929 | */ |
|
| 2930 | public function testPublishRoleDraft() |
|
| 2931 | { |
|
| 2932 | $repository = $this->getRepository(); |
|
| 2933 | ||
| 2934 | /* BEGIN: Use Case */ |
|
| 2935 | $roleService = $repository->getRoleService(); |
|
| 2936 | $roleCreate = $roleService->newRoleCreateStruct('newRole'); |
|
| 2937 | ||
| 2938 | // @todo uncomment when support for multilingual names and descriptions is added EZP-24776 |
|
| 2939 | // $roleCreate->mainLanguageCode = 'eng-US'; |
|
| 2940 | ||
| 2941 | $roleDraft = $roleService->createRole($roleCreate); |
|
| 2942 | ||
| 2943 | $roleDraft = $roleService->addPolicyByRoleDraft( |
|
| 2944 | $roleDraft, |
|
| 2945 | $roleService->newPolicyCreateStruct('content', 'delete') |
|
| 2946 | ); |
|
| 2947 | $roleDraft = $roleService->addPolicyByRoleDraft( |
|
| 2948 | $roleDraft, |
|
| 2949 | $roleService->newPolicyCreateStruct('content', 'create') |
|
| 2950 | ); |
|
| 2951 | ||
| 2952 | $roleService->publishRoleDraft($roleDraft); |
|
| 2953 | /* END: Use Case */ |
|
| 2954 | ||
| 2955 | $this->assertInstanceOf( |
|
| 2956 | '\\eZ\\Publish\\API\\Repository\\Values\\User\\Role', |
|
| 2957 | $roleService->loadRoleByIdentifier($roleCreate->identifier) |
|
| 2958 | ); |
|
| 2959 | } |
|
| 2960 | ||
| 2961 | /** |
|
| 2962 | * Test for the publishRoleDraft() method. |
|
| @@ 290-320 (lines=31) @@ | ||
| 287 | * @depends eZ\Publish\API\Repository\Tests\RoleServiceTest::testRemovePolicyByRoleDraft |
|
| 288 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testCreateUser |
|
| 289 | */ |
|
| 290 | public function testRemovePolicyThrowsUnauthorizedException() |
|
| 291 | { |
|
| 292 | $repository = $this->getRepository(); |
|
| 293 | $roleService = $repository->getRoleService(); |
|
| 294 | ||
| 295 | /* BEGIN: Use Case */ |
|
| 296 | $user = $this->createUserVersion1(); |
|
| 297 | ||
| 298 | $roleCreate = $roleService->newRoleCreateStruct('newRole'); |
|
| 299 | ||
| 300 | // @todo uncomment when support for multilingual names and descriptions is added EZP-24776 |
|
| 301 | // $roleCreate->mainLanguageCode = 'eng-US'; |
|
| 302 | ||
| 303 | // Create a new role with two policies |
|
| 304 | $roleDraft = $roleService->createRole($roleCreate); |
|
| 305 | $roleService->addPolicyByRoleDraft( |
|
| 306 | $roleDraft, |
|
| 307 | $roleService->newPolicyCreateStruct('content', 'create') |
|
| 308 | ); |
|
| 309 | $roleDraft = $roleService->addPolicyByRoleDraft( |
|
| 310 | $roleDraft, |
|
| 311 | $roleService->newPolicyCreateStruct('content', 'delete') |
|
| 312 | ); |
|
| 313 | ||
| 314 | // Set "Editor" user as current user. |
|
| 315 | $repository->setCurrentUser($user); |
|
| 316 | ||
| 317 | // This call will fail with an "UnauthorizedException" |
|
| 318 | $roleService->removePolicyByRoleDraft($roleDraft, $roleDraft->getPolicies()[0]); |
|
| 319 | /* END: Use Case */ |
|
| 320 | } |
|
| 321 | ||
| 322 | /** |
|
| 323 | * Test for the deletePolicy() method. |
|