Source of file MaintenanceModeControllerExtension.php
Size: 1,640 Bytes - Last Modified: 2019-06-07T11:25:58+00:00
/var/www/docs.ssmods.com/process/src/src/MaintenanceModeControllerExtension.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 | <?php use SilverStripe\SiteConfig\SiteConfig; use SilverStripe\Forms\HTMLEditor\HtmlEditorField; use SilverStripe\Forms\CheckboxField; use SilverStripe\ORM\DataExtension; use SilverStripe\Forms\FieldList; use SilverStripe\Security\Permission; use SilverStripe\Security\PermissionProvider; use SilverStripe\CMS\Controllers\ModelAsController; use SilverStripe\Control\HTTP; use SilverStripe\Control\HTTPRequest; use SilverStripe\Control\HTTPResponse; use SilverStripe\Core\Extension; class MaintenanceModeControllerExtension extends Extension { public function onBeforeInit() { $config = SiteConfig::current_site_config(); $MaintenancePage = MaintenancePage::get()->first(); if ($this->owner->URLSegment == "home" && $config->MaintenanceMode && !Permission::check('MAINTENANCE_PAGE_VIEW_SITE') && !Permission::check('ADMIN') ) { $response = new HTTPResponse(); $response->redirect($MaintenancePage->AbsoluteLink(), 302); $response->output(); die(); } if (!$config->MaintenanceMode) { return; } if (Permission::check('MAINTENANCE_PAGE_VIEW_SITE') || Permission::check('ADMIN')) { return; } if ($this->owner instanceof MaintenancePageController) { return; } if (!$MaintenancePage) { return; } if(strpos($this->owner->RelativeLink(), "Security") === false) { $response = new HTTPResponse(); $response->redirect($MaintenancePage->AbsoluteLink(), 302); HTTP::add_cache_headers($response); $response->output(); die(); } } } |