|
@@ 878-912 (lines=35) @@
|
| 875 |
|
* @depends \eZ\Publish\API\Repository\Tests\RepositoryTest::testGetContentService |
| 876 |
|
* @depends \eZ\Publish\API\Repository\Tests\PermissionResolverTest::testHasAccessForCurrentUserNo |
| 877 |
|
*/ |
| 878 |
|
public function testLookupLimitationsForAnonymousUserHasNoAccess(): void |
| 879 |
|
{ |
| 880 |
|
$repository = $this->getRepository(); |
| 881 |
|
|
| 882 |
|
$homeId = $this->generateId('object', 57); |
| 883 |
|
|
| 884 |
|
$anonymousUserId = $this->generateId('user', 10); |
| 885 |
|
/* BEGIN: Use Case */ |
| 886 |
|
// $anonymousUserId is the ID of the "Anonymous" user in a eZ |
| 887 |
|
// Publish demo installation. |
| 888 |
|
// $homeId contains the ID of the "Home" frontpage |
| 889 |
|
|
| 890 |
|
$contentService = $repository->getContentService(); |
| 891 |
|
$userService = $repository->getUserService(); |
| 892 |
|
$permissionResolver = $repository->getPermissionResolver(); |
| 893 |
|
|
| 894 |
|
// Load anonymous user |
| 895 |
|
$anonymousUser = $userService->loadUser($anonymousUserId); |
| 896 |
|
|
| 897 |
|
// Set anonymous user as current user reference |
| 898 |
|
$permissionResolver->setCurrentUserReference($anonymousUser); |
| 899 |
|
|
| 900 |
|
// Load the ContentInfo for "Home" frontpage |
| 901 |
|
$contentInfo = $contentService->loadContentInfo($homeId); |
| 902 |
|
|
| 903 |
|
// `$lookupLimitations->hasAccess` will return false because anonymous user does not have access |
| 904 |
|
// to content removal and hence no permission to remove given content. `$lookupLimitations->lookupPolicyLimitations` |
| 905 |
|
// will be empty array |
| 906 |
|
$lookupLimitations = $permissionResolver->lookupLimitations('content', 'remove', $contentInfo); |
| 907 |
|
/* END: Use Case */ |
| 908 |
|
|
| 909 |
|
$this->assertFalse($lookupLimitations->hasAccess); |
| 910 |
|
$this->assertEquals($lookupLimitations->roleLimitations, []); |
| 911 |
|
$this->assertEquals($lookupLimitations->lookupPolicyLimitations, []); |
| 912 |
|
} |
| 913 |
|
|
| 914 |
|
/** |
| 915 |
|
* Test for the lookupLimitations() method. |
|
@@ 922-953 (lines=32) @@
|
| 919 |
|
* @depends \eZ\Publish\API\Repository\Tests\RepositoryTest::testGetContentService |
| 920 |
|
* @depends \eZ\Publish\API\Repository\Tests\PermissionResolverTest::testHasAccessForCurrentUserYes |
| 921 |
|
*/ |
| 922 |
|
public function testLookupLimitationsForAdministratorUser(): void |
| 923 |
|
{ |
| 924 |
|
$repository = $this->getRepository(); |
| 925 |
|
|
| 926 |
|
$administratorUserId = $this->generateId('user', 14); |
| 927 |
|
$homeId = $this->generateId('object', 57); |
| 928 |
|
|
| 929 |
|
/* BEGIN: Use Case */ |
| 930 |
|
// $administratorUserId contains the ID of the administrator user |
| 931 |
|
// $homeId contains the ID of the "Home" frontpage |
| 932 |
|
|
| 933 |
|
$contentService = $repository->getContentService(); |
| 934 |
|
$userService = $repository->getUserService(); |
| 935 |
|
$permissionResolver = $repository->getPermissionResolver(); |
| 936 |
|
|
| 937 |
|
// Load administrator user |
| 938 |
|
$administratorUser = $userService->loadUser($administratorUserId); |
| 939 |
|
|
| 940 |
|
// Set administrator user as current user reference |
| 941 |
|
$permissionResolver->setCurrentUserReference($administratorUser); |
| 942 |
|
|
| 943 |
|
// Load the ContentInfo for "Home" frontpage |
| 944 |
|
$contentInfo = $contentService->loadContentInfo($homeId); |
| 945 |
|
|
| 946 |
|
// This call will return true |
| 947 |
|
$lookupLimitations = $permissionResolver->lookupLimitations('content', 'remove', $contentInfo); |
| 948 |
|
/* END: Use Case */ |
| 949 |
|
|
| 950 |
|
$this->assertTrue($lookupLimitations->hasAccess); |
| 951 |
|
$this->assertEquals($lookupLimitations->roleLimitations, []); |
| 952 |
|
$this->assertEquals($lookupLimitations->lookupPolicyLimitations, []); |
| 953 |
|
} |
| 954 |
|
|
| 955 |
|
/** |
| 956 |
|
* When one of policy pass then all limitation should be returned. |