Fixes #521 - Redirect to next available menu item when Dashboard access is denied

This commit is contained in:
Sam Georges 2014-11-09 13:06:07 +11:00
parent ebaacac5fd
commit 5e3ee40edf
2 changed files with 12 additions and 1 deletions

View File

@ -6,6 +6,7 @@ use Backend;
use Redirect;
use Validator;
use BackendAuth;
use BackendMenu;
use Backend\Models\User;
use Backend\Models\AccessLog;
use Backend\Classes\Controller;
@ -83,6 +84,14 @@ class Auth extends Controller
// Log the sign in event
AccessLog::add($user);
// User cannot access the dashboard
if (!$user->hasAccess('backend.access_dashboard')) {
$true = function(){ return true; };
if ($first = array_first(BackendMenu::listMainMenuItems(), $true)) {
return Redirect::intended($first->url);
}
}
// Redirect to the intended page after successful sign in
return Redirect::intended(Backend::url('backend'));
}

View File

@ -13,7 +13,9 @@
<ul class="nav">
<?php foreach (BackendMenu::listMainMenuItems() as $item): ?>
<li class="<?= BackendMenu::isMainMenuItemActive($item) ? 'active' : null ?>">
<a href="<?= $item->url ?>"><i class="<?= $item->icon ?>"></i><?= e(trans($item->label)) ?></a>
<a href="<?= $item->url ?>">
<i class="<?= $item->icon ?>"></i><?= e(trans($item->label)) ?>
</a>
</li>
<?php endforeach ?>
</ul>