mirror of
https://github.com/silverstripe/silverstripe-reports
synced 2024-10-22 11:05:53 +02:00
BUGFIX #6291 Remove rollback action from CMSMain allowed_actions and rely on form action_rollback instead which is safer
git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/cms/branches/2.4@115440 467b73ca-7a2a-4603-9d3b-597d59a354a9
This commit is contained in:
parent
3b6a9579d4
commit
27aad3deca
@ -52,7 +52,6 @@ class CMSMain extends LeftAndMain implements CurrentPageIdentifier, PermissionPr
|
|||||||
'getshowdeletedsubtree',
|
'getshowdeletedsubtree',
|
||||||
'getfilteredsubtree',
|
'getfilteredsubtree',
|
||||||
'batchactions',
|
'batchactions',
|
||||||
'rollback', // see http://open.silverstripe.org/ticket/6291
|
|
||||||
);
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -390,11 +389,15 @@ JS;
|
|||||||
* Get a database record to be managed by the CMS
|
* Get a database record to be managed by the CMS
|
||||||
*/
|
*/
|
||||||
public function getRecord($id) {
|
public function getRecord($id) {
|
||||||
|
|
||||||
$treeClass = $this->stat('tree_class');
|
$treeClass = $this->stat('tree_class');
|
||||||
|
|
||||||
if($id && is_numeric($id)) {
|
if($id && is_numeric($id)) {
|
||||||
$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
|
// Then, try getting a record from the live site
|
||||||
if(!$record) {
|
if(!$record) {
|
||||||
@ -902,10 +905,7 @@ JS;
|
|||||||
'Root'
|
'Root'
|
||||||
);
|
);
|
||||||
|
|
||||||
$actions = new FieldSet(
|
$actions = $record->getCMSActions();
|
||||||
new FormAction("email", _t('CMSMain.EMAIL',"Email")),
|
|
||||||
new FormAction("rollback", _t('CMSMain.ROLLBACK',"Roll back to this version"))
|
|
||||||
);
|
|
||||||
|
|
||||||
// encode the message to appear in the body of the email
|
// encode the message to appear in the body of the email
|
||||||
$archiveURL = Director::absoluteBaseURL() . $record->URLSegment . '?archiveDate=' . $record->obj('LastEdited')->URLDatetime();
|
$archiveURL = Director::absoluteBaseURL() . $record->URLSegment . '?archiveDate=' . $record->obj('LastEdited')->URLDatetime();
|
||||||
|
@ -186,7 +186,20 @@ class CMSMainTest extends FunctionalTest {
|
|||||||
$newPage = $cmsMain->getRecord('new-Page-5');
|
$newPage = $cmsMain->getRecord('new-Page-5');
|
||||||
$this->assertType('Page', $newPage);
|
$this->assertType('Page', $newPage);
|
||||||
$this->assertEquals('5', $newPage->ParentID);
|
$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']);
|
||||||
}
|
}
|
||||||
|
|
||||||
function testDeletedPagesSiteTreeFilter() {
|
function testDeletedPagesSiteTreeFilter() {
|
||||||
|
Loading…
Reference in New Issue
Block a user