mirror of
https://github.com/silverstripe/silverstripe-cms
synced 2024-10-22 08:05:56 +02:00
API remove obsolete UpgradeSiteTreePermissionSchemaTask
This commit is contained in:
parent
6b4617d476
commit
b135c2566c
@ -1464,17 +1464,6 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
|
||||
DB::alteration_message('Contact Us page created', 'created');
|
||||
}
|
||||
}
|
||||
|
||||
// schema migration
|
||||
// @todo Move to migration task once infrastructure is implemented
|
||||
if($this->class == 'SiteTree') {
|
||||
$conn = DB::get_schema();
|
||||
// only execute command if fields haven't been renamed to _obsolete_<fieldname> already by the task
|
||||
if($conn->hasField('SiteTree' ,'Viewers')) {
|
||||
$task = new UpgradeSiteTreePermissionSchemaTask();
|
||||
$task->run(new SS_HTTPRequest('GET','/'));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected function onBeforeWrite() {
|
||||
|
@ -1,55 +0,0 @@
|
||||
<?php
|
||||
|
||||
use SilverStripe\ORM\DB;
|
||||
use SilverStripe\ORM\DataObject;
|
||||
|
||||
/**
|
||||
* @package cms
|
||||
* @subpackage tasks
|
||||
*/
|
||||
class UpgradeSiteTreePermissionSchemaTask extends BuildTask {
|
||||
|
||||
private static $allowed_actions = array(
|
||||
'*' => 'ADMIN'
|
||||
);
|
||||
|
||||
protected $title = 'Upgrade SiteTree Permissions Schema';
|
||||
|
||||
protected $description = "Move data from legacy columns to new schema introduced in SilverStripe 2.1.<br />
|
||||
SiteTree->Viewers to SiteTree->CanViewType<br />
|
||||
SiteTree->Editors to SiteTree->CanEditType<br />
|
||||
SiteTree->ViewersGroup to SiteTree->ViewerGroups (has_one to many_many)<br />
|
||||
SiteTree->Editorsroup to SiteTree->EditorGroups (has_one to many_many)<br />
|
||||
See http://open.silverstripe.com/ticket/2847
|
||||
";
|
||||
|
||||
public function run($request) {
|
||||
// transfer values for changed column name
|
||||
foreach(array('SiteTree','SiteTree_Live','SiteTree_versions') as $table) {
|
||||
DB::prepared_query("UPDATE \"{$table}\" SET \"CanViewType\" = ?", array('Viewers'));
|
||||
DB::prepared_query("UPDATE \"{$table}\" SET \"CanEditType\" = ?", array('Editors'));
|
||||
}
|
||||
//Debug::message('Moved SiteTree->Viewers to SiteTree->CanViewType');
|
||||
//Debug::message('Moved SiteTree->Editors to SiteTree->CanEditType');
|
||||
|
||||
// convert has_many to many_many
|
||||
$pageIDs = DB::query("SELECT ID FROM SiteTree")->column('ID');
|
||||
foreach($pageIDs as $pageID) {
|
||||
$page = DataObject::get_by_id('SiteTree', $pageID);
|
||||
if($page->ViewersGroup && DataObject::get_by_id("SilverStripe\\Security\\Group", $page->ViewersGroup)) $page->ViewerGroups()->add($page->ViewersGroup);
|
||||
if($page->EditorsGroup && DataObject::get_by_id("SilverStripe\\Security\\Group", $page->EditorsGroup)) $page->EditorGroups()->add($page->EditorsGroup);
|
||||
|
||||
$page->destroy();
|
||||
unset($page);
|
||||
}
|
||||
//Debug::message('SiteTree->ViewersGroup to SiteTree->ViewerGroups (has_one to many_many)');
|
||||
//Debug::message('SiteTree->EditorsGroup to SiteTree->EditorGroups (has_one to many_many)');
|
||||
|
||||
// rename legacy columns
|
||||
foreach(array('SiteTree','SiteTree_Live','SiteTree_versions') as $table) {
|
||||
foreach(array('Viewers','Editors','ViewersGroup','EditorsGroup') as $field) {
|
||||
DB::get_conn()->dontRequireField($table, $field);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user