Laravel 背包限制用户访问管理面板
Laravel backpack restrict user access to admin panel
我正在尝试更改 CheckIfAdmin 中间件中的 checkIfUserIsAdmin() 方法,以禁用对所有不具有管理员角色的用户的访问
发生了什么:
没有什么。 backpack_user()->can(...) 或 backpack_user()->role(...) 不工作...
这是限制用户访问管理面板的正确方法吗?
bp - 3.5
laravel - 5.7
php - 7.2
一种方法是在 Http\Middleware 中制作一个具有以下功能的中间件,例如 CheckIfAdmin.php。
private function checkIfUserIsAdmin($user)
{
return ($user->is_admin == 1);
}
然后将这个中间件添加到Http\Kernel.php的数组$routeMiddleware中。如下所示。
'admin' => \App\Http\Middleware\checkIfUserIsAdmin::class,
首先,创建一个中间件:
php artisan make:middleware AdminMiddleware
在此文件中,我们将检查用户是否具有“管理员”角色
<?php
namespace App\Http\Middleware;
use Closure;
class AdminMiddleware
{
public function handle($request, Closure $next)
{
if (! \Auth::user()->hasRole('admin'))
return response(trans('backpack::base.unauthorized'),401);
return $next($request);
}
}
现在,将这个中间件添加到 /config/backpack/base。php
(不要删除CheckIfAdmin中间件,追加即可)
'middleware_class' => [
\Backpack\Base\app\Http\Middleware\CheckIfAdmin::class,
\App\Http\Middleware\AdminMiddleware::class
],
当然我们必须缓存配置然后
php artisan config:cache
我正在尝试更改 CheckIfAdmin 中间件中的 checkIfUserIsAdmin() 方法,以禁用对所有不具有管理员角色的用户的访问
发生了什么: 没有什么。 backpack_user()->can(...) 或 backpack_user()->role(...) 不工作... 这是限制用户访问管理面板的正确方法吗?
bp - 3.5
laravel - 5.7
php - 7.2
一种方法是在 Http\Middleware 中制作一个具有以下功能的中间件,例如 CheckIfAdmin.php。
private function checkIfUserIsAdmin($user)
{
return ($user->is_admin == 1);
}
然后将这个中间件添加到Http\Kernel.php的数组$routeMiddleware中。如下所示。
'admin' => \App\Http\Middleware\checkIfUserIsAdmin::class,
首先,创建一个中间件:
php artisan make:middleware AdminMiddleware
在此文件中,我们将检查用户是否具有“管理员”角色
<?php
namespace App\Http\Middleware;
use Closure;
class AdminMiddleware
{
public function handle($request, Closure $next)
{
if (! \Auth::user()->hasRole('admin'))
return response(trans('backpack::base.unauthorized'),401);
return $next($request);
}
}
现在,将这个中间件添加到 /config/backpack/base。php
(不要删除CheckIfAdmin中间件,追加即可)
'middleware_class' => [
\Backpack\Base\app\Http\Middleware\CheckIfAdmin::class,
\App\Http\Middleware\AdminMiddleware::class
],
当然我们必须缓存配置然后
php artisan config:cache