FIX: content authors unable to duplicate top-level pages (fixes #1685)

This commit is contained in:
Loz Calver 2016-11-22 15:55:28 +00:00
parent 12c0f3c1c7
commit b2503ac004
2 changed files with 284 additions and 280 deletions

View File

@ -1049,7 +1049,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
}
// Fall over to inherited permissions
if($parent) {
if($parent && $parent->exists()) {
return $parent->canAddChildren($member);
} else {
// This doesn't necessarily mean we are creating a root page, but that

View File

@ -512,6 +512,10 @@ class SiteTreeTest extends SapphireTest {
$this->assertTrue(singleton('SiteTreeTest_ClassA')->canCreate(null));
$this->assertFalse(singleton('SiteTreeTest_ClassA')->canCreate(null, array('Parent' => $parentB)));
$this->assertTrue(singleton('SiteTreeTest_ClassC')->canCreate(null, array('Parent' => $parentB)));
// Test creation underneath a parent which doesn't exist in the database. This should
// fall back to checking whether the user can create pages at the root of the site
$this->assertTrue(singleton('SiteTree')->canCreate(null, array('Parent' => singleton('SiteTree'))));
}
public function testEditPermissionsOnDraftVsLive() {