Вход Регистрация
Файл: framework/control/VersionedRequestFilter.php
Строк: 74
<?php

/**
 * Initialises the versioned stage when a request is made.
 *
 * @package framework
 * @subpackage control
 */
class VersionedRequestFilter implements RequestFilter {

    public function 
preRequest(SS_HTTPRequest $requestSession $sessionDataModel $model) {
        
// Bootstrap session so that Session::get() accesses the right instance
        
$dummyController = new Controller();
        
$dummyController->setSession($session);
        
$dummyController->setRequest($request);
        
$dummyController->pushCurrent();

        
// Block non-authenticated users from setting the stage mode
        
if(!Versioned::can_choose_site_stage($request)) {
            
$permissionMessage sprintf(
                
_t(
                    
"ContentController.DRAFT_SITE_ACCESS_RESTRICTION",
                    
'You must log in with your CMS password in order to view the draft or archived content. '.
                    
'<a href="%s">Click here to go back to the published site.</a>'
                
),
                
Controller::join_links(Director::baseURL(), $request->getURL(), "?stage=Live")
            );

            
// Force output since RequestFilter::preRequest doesn't support response overriding
            
$response Security::permissionFailure($dummyController$permissionMessage);
            
$session->inst_save();
            
$dummyController->popCurrent();
            
// Prevent output in testing
            
if(class_exists('SapphireTest'false) && SapphireTest::is_running_test()) {
                throw new 
SS_HTTPResponse_Exception($response);
            }
            
$response->output();
            die;
        }

        
Versioned::choose_site_stage();
        
$dummyController->popCurrent();
        return 
true;
    }

    public function 
postRequest(SS_HTTPRequest $requestSS_HTTPResponse $responseDataModel $model) {
        return 
true;
    }

}
Онлайн: 1
Реклама