Improve the access denied (403) page

This is an improved version of the current access denied (403) page based on the built-in not found (404) page.

Shows a link to the CMS backend if the user is logged in and doesn't have permissions for the backend page it's trying to access, but does have permissions for the CMS backend.

Please note that the following languages are machine translated: ja, pt-br, ru and sv.
This commit is contained in:
Louis Matthijssen 2014-06-16 22:46:11 +02:00
parent df25c5d9f7
commit bbd2915637
10 changed files with 64 additions and 3 deletions

View File

@ -3,6 +3,7 @@
use Str;
use Log;
use Lang;
use View;
use Flash;
use Request;
use Backend;
@ -145,7 +146,7 @@ class Controller extends Extendable
// Not logged in, redirect to login screen or show ajax error
if (!BackendAuth::check()) {
return Request::ajax()
? Response::make('Access Forbidden', '403')
? Response::make(View::make('backend::403'), 403)
: Redirect::guest(Backend::url('backend/auth'));
}
@ -153,8 +154,12 @@ class Controller extends Extendable
$this->user = BackendAuth::getUser();
// Check his access groups against the page definition
if ($this->requiredPermissions && !$this->user->hasAnyAccess($this->requiredPermissions))
return Response::make('Access Forbidden', '403');
if ($this->requiredPermissions && !$this->user->hasAnyAccess($this->requiredPermissions)) {
if ($this->user->hasAnyAccess(['cms.*']))
return Response::make(View::make('backend::403', ['cms_link' => '<a href="'.Backend::url('cms').'">'.Lang::get('cms::lang.page.access_denied.cms_link').'</a>']), 403);
return Response::make(View::make('backend::403'), 403);
}
}
/*

View File

@ -0,0 +1,16 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title><?= Lang::get('cms::lang.page.access_denied.label') ?></title>
<link href="<?= URL::to('/modules/system/assets/vendor/font-autumn/css/font-autumn.css') ?>" rel="stylesheet">
<link href="<?= URL::to('/modules/system/assets/css/styles.css') ?>" rel="stylesheet">
</head>
<body>
<div class="container">
<h1><i class="icon-lock warning"></i> <?= Lang::get('cms::lang.page.access_denied.label') ?></h1>
<p class="lead"><?= Lang::get('cms::lang.page.access_denied.help') ?></p>
<?php if (isset($cms_link)) echo $cms_link; ?>
</div>
</body>
</html>

View File

@ -27,6 +27,11 @@ return [
'label' => "Seite nicht gefunden",
'help' => "Die angeforderte Seite kann nicht gefunden werden.",
],
'access_denied' => [
'label' => "Zugriff verweigert",
'help' => "Sie haben nicht die erforderlichen Berechtigungen, um diese Seite zu sehen.",
'cms_link' => "Zum CMS-Backend",
],
'custom_error' => [
'label' => "Seitenfehler",
'help' => "Entschuldigung, ein Fehler trat auf, sodass die gewünschte Seite nicht angezeigt werden kann.",

View File

@ -27,6 +27,11 @@ return [
'label' => "Page not found",
'help' => "The requested page cannot be found.",
],
'access_denied' => [
'label' => "Access denied",
'help' => "You don't have the required permissions to view this page.",
'cms_link' => "Go to CMS backend",
],
'custom_error' => [
'label' => "Page error",
'help' => "We're sorry, but something went wrong and the page cannot be displayed.",

View File

@ -27,6 +27,11 @@ return [
'label' => "ページが見つかりません。",
'help' => "要求されているページが見つかりません。",
],
'access_denied' => [
'label' => "アクセスが拒否されました",
'help' => "このページを表示するために必要な権限がありません。",
'cms_link' => "CMSのバックエンドに行く",
],
'custom_error' => [
'label' => "ページエラー。",
'help' => "恐れいります。何かが間違っているようで、ページが表示できません。",

View File

@ -27,6 +27,11 @@ return [
'label' => "Pagina niet gevonden",
'help' => "De opgevraagde pagina bestaat niet.",
],
'access_denied' => [
'label' => "Toegang geweigerd",
'help' => "Je hebt niet de benodigde rechten om deze pagina te bekijken.",
'cms_link' => "Ga naar CMS backend",
],
'custom_error' => [
'label' => "Paginafout",
'help' => "Onze excuses, er is iets mis gegaan. De opgevraagde pagina kan niet worden getoond.",

View File

@ -27,6 +27,11 @@ return [
'label' => "Página não encontrada",
'help' => "A página solicitada não pode ser encontrada.",
],
'access_denied' => [
'label' => "Acesso negado",
'help' => "Você não tem as permissões necessárias para visualizar esta página.",
'cms_link' => "Ir para CMS backend",
],
'custom_error' => [
'label' => "Erro na página",
'help' => "Lamentamos, mas algo deu errado e que a página não pode ser exibida.",

View File

@ -27,6 +27,11 @@ return [
'label' => "Страница не найдена",
'help' => "Запрошенная страница не найдена.",
],
'access_denied' => [
'label' => "доступ запрещен",
'help' => "Вы не должны необходимые разрешения для просмотра этой страницы.",
'cms_link' => "К CMS серверной",
],
'custom_error' => [
'label' => "Ошибка на странице",
'help' => "К сожалению, страница не может быть отображена из-за ошибки.",

View File

@ -27,6 +27,11 @@ return [
'label' => "Sidan kunde ej hittas",
'help' => "Den begärda sidan kunde ej hittas",
],
'access_denied' => [
'label' => "Nekat tillträde",
'help' => "Du har inte behörighet att visa den här sidan.",
'cms_link' => "Gå till CMS backend",
],
'custom_error' => [
'label' => "Sidfel",
'help' => "Tyvärr kan inte sidan visas",

View File

@ -27,6 +27,11 @@ return [
'label' => "Sayfa bulunamadı",
'help' => "İstenilen sayfa bulunamadı.",
],
'access_denied' => [
'label' => "Giriş engellendi",
'help' => "Bu sayfayı görüntülemek için gerekli izinlere sahip değilsiniz.",
'cms_link' => "CMS uç git",
],
'custom_error' => [
'label' => "Sayfa hatası",
'help' => "Üzgünüz, bir şeyler ters gitti ve sayfa görüntülenemiyor.",