Skip to content

Commit

Permalink
BUGFIX #6291 Remove rollback action from CMSMain allowed_actions and …
Browse files Browse the repository at this point in the history
…rely on form action_rollback instead which is safer (from r115440)

git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/cms/branches/2.3@115919 467b73ca-7a2a-4603-9d3b-597d59a354a9
  • Loading branch information
Sean Harvey authored and Sam Minnee committed Feb 2, 2011
1 parent 37bc43b commit 8089e04
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 9 deletions.
15 changes: 7 additions & 8 deletions code/CMSMain.php
Expand Up @@ -331,12 +331,15 @@ public function PageTypes() {
* Get a database record to be managed by the CMS
*/
public function getRecord($id) {

$treeClass = $this->stat('tree_class');

if($id && is_numeric($id)) {
// First, try getting a record from the stage site
$record = DataObject::get_one( $treeClass, "`$treeClass`.ID = $id");
$version = isset($_REQUEST['Version']) ? $_REQUEST['Version'] : null;
if(is_numeric($version)) {
$record = Versioned::get_version($treeClass, $id, $version);
} else {
$record = DataObject::get_one($treeClass, "`$treeClass`.ID = $id");
}

// Then, try getting a record from the live site
if(!$record) {
Expand Down Expand Up @@ -743,11 +746,7 @@ function getversion() {
'Root'
);

$actions = new FieldSet(
new FormAction("email", _t('CMSMain.EMAIL',"Email")),
new FormAction("print", _t('CMSMain.PRINT',"Print")),
new FormAction("rollback", _t('CMSMain.ROLLBACK',"Roll back to this version"))
);
$actions = $record->getCMSActions();

// encode the message to appear in the body of the email
$archiveURL = Director::absoluteBaseURL() . $record->URLSegment . '?archiveDate=' . $record->obj('LastEdited')->URLDatetime();
Expand Down
15 changes: 14 additions & 1 deletion tests/CMSMainTest.php
Expand Up @@ -132,7 +132,20 @@ function testGetRecord() {
$newPage = $cmsMain->getRecord('new-Page-5');
$this->assertType('Page', $newPage);
$this->assertEquals('5', $newPage->ParentID);
}

function testGetVersionRecord() {
$cmsMain = new CMSMain();
$page1 = $this->objFromFixture('Page', 'page1');
$page1->Content = 'this is the old content';
$page1->write();
$page1->Content = 'this is new content (new version)';
$page1->write();
$versionID = DB::query('SELECT `Version` FROM `SiteTree_versions` WHERE `Content` = \'this is the old content\'')->value();
$_REQUEST['Version'] = $versionID;
$this->assertEquals($cmsMain->getRecord($page1->ID)->Version, $versionID);
$this->assertEquals($cmsMain->getRecord($page1->ID)->Content, 'this is the old content');
unset($_REQUEST['Version']);
}

}
}

0 comments on commit 8089e04

Please sign in to comment.