mirror of
https://github.com/silverstripe/silverstripe-reports
synced 2024-10-22 11:05:53 +02:00
BUG Session namespace sharing for CMS controllers
Ideally we could do this without session, but pragmatically we still need it, because of the inflexible routing system, and because of performance considerations. Example: The tree is lazy loaded via a generic URL (admin/pages/treeview). While we could add ?ID=<currentpage> to make the view (more or less) stateless, it would trigger a full tree reload on every tree navigation action. Instead, we assume that all "reachable" nodes are already cached, and simply mark a different one as current. For this to work, we need shared session state between CMS controllers. See http://open.silverstripe.org/ticket/7815 for detail.
This commit is contained in:
parent
651cb03ff2
commit
f454f481f2
@ -9,4 +9,6 @@ class CMSPageEditController extends CMSMain {
|
||||
static $url_rule = '/$Action/$ID/$OtherID';
|
||||
static $url_priority = 41;
|
||||
static $required_permission_codes = 'CMS_ACCESS_CMSMain';
|
||||
static $session_namespace = 'CMSMain';
|
||||
|
||||
}
|
||||
|
@ -11,6 +11,7 @@ class CMSPageHistoryController extends CMSMain {
|
||||
static $url_priority = 42;
|
||||
static $menu_title = 'History';
|
||||
static $required_permission_codes = 'CMS_ACCESS_CMSMain';
|
||||
static $session_namespace = 'CMSMain';
|
||||
|
||||
static $allowed_actions = array(
|
||||
'VersionsForm',
|
||||
|
@ -9,6 +9,7 @@ class CMSPageSettingsController extends CMSMain {
|
||||
static $url_rule = '/$Action/$ID/$OtherID';
|
||||
static $url_priority = 42;
|
||||
static $required_permission_codes = 'CMS_ACCESS_CMSMain';
|
||||
static $session_namespace = 'CMSMain';
|
||||
|
||||
function getEditForm($id = null, $fields = null) {
|
||||
$record = $this->getRecord($id ? $id : $this->currentPageID());
|
||||
|
@ -10,6 +10,7 @@ class CMSPagesController extends CMSMain {
|
||||
static $url_priority = 40;
|
||||
static $menu_title = 'Pages';
|
||||
static $required_permission_codes = 'CMS_ACCESS_CMSMain';
|
||||
static $session_namespace = 'CMSMain';
|
||||
|
||||
function LinkPreview() {
|
||||
return false;
|
||||
@ -22,14 +23,6 @@ class CMSPagesController extends CMSMain {
|
||||
return $this->request->getVar('view');
|
||||
}
|
||||
|
||||
/**
|
||||
* Doesn't deal with a single record, and we need
|
||||
* to avoid session state from previous record edits leaking in here.
|
||||
*/
|
||||
public function currentPageID() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public function isCurrentPage(DataObject $record) {
|
||||
return false;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user