BUG block adding children from archived pages

Fixes #1260
This commit is contained in:
Damian Mooyman 2015-08-24 15:16:09 +12:00
parent 80aca3a511
commit 6c17397322
2 changed files with 29 additions and 0 deletions

View File

@ -862,6 +862,11 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
* @return bool True if the current user can add children
*/
public function canAddChildren($member = null) {
// Disable adding children to archived pages
if($this->getIsDeletedFromStage()) {
return false;
}
if(!$member || !(is_a($member, 'Member')) || is_numeric($member)) {
$member = Member::currentUserID();
}

View File

@ -1148,6 +1148,30 @@ class SiteTreeTest extends SapphireTest {
}
/**
* Test archived page behaviour
*/
public function testArchivedPages() {
$this->logInWithPermission('ADMIN');
$page = $this->objFromFixture('Page', 'home');
$this->assertTrue($page->canAddChildren());
$this->assertFalse($page->getIsDeletedFromStage());
$this->assertFalse($page->isPublished());
// Publish
$page->doPublish();
$this->assertTrue($page->canAddChildren());
$this->assertFalse($page->getIsDeletedFromStage());
$this->assertTrue($page->isPublished());
// Archive
$page->doArchive();
$this->assertFalse($page->canAddChildren());
$this->assertTrue($page->getIsDeletedFromStage());
$this->assertFalse($page->isPublished());
}
}
/**#@+