Вход Регистрация
Файл: library/XenForo/ControllerPublic/Error.php
Строк: 199
<?php

class XenForo_ControllerPublic_Error extends XenForo_ControllerPublic_Abstract
{
    public function 
actionErrorNotFound()
    {
        return 
$this->getNotFoundResponse();
    }

    public function 
actionErrorServer()
    {
        
$upgradePending false;
        try
        {
            
$db XenForo_Application::getDb();
            if (
$db->isConnected())
            {
                
$dbVersionId $db->fetchOne("SELECT option_value FROM xf_option WHERE option_id = 'currentVersionId'");
                if (
$dbVersionId && $dbVersionId != XenForo_Application::$versionId)
                {
                    
$upgradePending true;
                }
            }
        }
        catch (
Exception $e) {}

        if (
XenForo_Application::debugMode())
        {
            
$showDetails true;
        }
        else if (
XenForo_Visitor::hasInstance() && XenForo_Visitor::getInstance()->is_admin)
        {
            
$showDetails true;
        }
        else
        {
            
$showDetails false;
        }

        if (
$upgradePending && !$showDetails)
        {
            return 
$this->responseMessage(new XenForo_Phrase('board_currently_being_upgraded'));
        }
        else if (
$showDetails)
        {
            
$view $this->responseView(
                
'XenForo_ViewPublic_Error_ServerError',
                
'error_server_error',
                array(
'exception' => $this->_request->getParam('_exception'))
            );
            
$view->responseCode 500;
            return 
$view;
        }
        else
        {
            return 
$this->responseError(new XenForo_Phrase('server_error_occurred'), 500);
        }
    }

    public function 
actionNoPermission()
    {
        if (!
XenForo_Visitor::getUserId())
        {
            
// show login / registration form
            
return $this->responseReroute(__CLASS__'registrationRequired');
        }
        else
        {
            
// show no permission error without login form
            
return $this->responseError(new XenForo_Phrase('do_not_have_permission'), 403);
        }
    }

    
/**
     * Response when a user a guest attempts to perform a restricted action
     *
     * @return XenForo_ControllerResponse_View
     */
    
public function actionRegistrationRequired()
    {
        
$viewParams = array(
            
//'text' => new XenForo_Phrase('must_be_registered')
            
'text' => new XenForo_Phrase('login_required')
        );

        
$view $this->responseView('XenForo_ViewPublic_Error_RegistrationRequired''error_with_login'$viewParams);
        
$view->responseCode 403;

        return 
$view;
    }

    public function 
actionBanned()
    {
        
$bannedUser $this->getModelFromCache('XenForo_Model_Banning')->getBannedUserById(XenForo_Visitor::getUserId());
        if (!
$bannedUser)
        {
            return 
$this->responseNoPermission();
        }
        else
        {
            
// TODO: better display/message for banned user
            
if ($bannedUser['user_reason'])
            {
                
$message = new XenForo_Phrase('you_have_been_banned_for_following_reason_x', array('reason' => $bannedUser['user_reason']));
            }
            else
            {
                
$message = new XenForo_Phrase('you_have_been_banned');
            }
            if (
$bannedUser['end_date'] > XenForo_Application::$time)
            {
                
$message.= ' ' . new XenForo_Phrase('your_ban_will_be_lifted_on_x', array('date' => XenForo_Locale::dateTime($bannedUser['end_date'])));
            }

            return 
$this->responseError($message403);
        }
    }

    public function 
actionBannedIp()
    {
        return 
$this->responseError(new XenForo_Phrase('your_ip_address_has_been_banned'), 403);
    }

    protected function 
_assertIpNotBanned() {}
    protected function 
_assertViewingPermissions($action) {}
    protected function 
_assertNotBanned() {}
    protected function 
_assertBoardActive($action) {}
    protected function 
_assertCorrectVersion($action) {}
    public function 
updateSessionActivity($controllerResponse$controllerName$action) {}
}
Онлайн: 1
Реклама