contributions/usermanagement/controller/base/renderdecorators/accessdeniedredirectrenderdecorator.cls.php
Go to the documentation of this file.00001 <?php 00002 /** 00003 * Catches 403 and redirects to login page, if user is not already logged in 00004 * 00005 * This render decorator replaces the configuration option USER_403_BEHAVIOUR. 00006 * 00007 * @section Usage Usage 00008 * 00009 * Set this class as a render decorator on the PageData you create in the index.php, 00010 * like this: 00011 * 00012 * @code 00013 * $cache_manager = new AnonymousCacheManager(); 00014 * $page_data = new PageData($cache_manager, $_GET, $_POST); 00015 * $page_data->add_render_decorator_class('AccessDeniedRedirectRenderDecorator'); 00016 * @endcode 00017 * 00018 * @since 0.6 00019 * 00020 * @author Gerd Riesselmann 00021 * @ingroup Usermanagement 00022 */ 00023 class AccessDeniedRedirectRenderDecorator extends RenderDecoratorBase { 00024 /** 00025 * Render content 00026 * 00027 * @param PageData $page_data 00028 * @return void 00029 */ 00030 public function render_content($page_data) { 00031 parent::render_content($page_data); 00032 if ($page_data->status_code == ControllerBase::ACCESS_DENIED) { 00033 if (!Users::is_logged_in()) { 00034 Session::push('login_goto', Url::current()->build(Url::ABSOLUTE)); 00035 Url::create(ActionMapper::get_url('login'))->redirect(); 00036 exit; 00037 } 00038 } 00039 } 00040 }