我试图在checkIfUserIsAdmin中间件中更改CheckIfAdmin ()方法,以禁用对所有没有角色管理的用户的访问
发生了什么,:什么都没有。Backpack_user()->can(…)或backpack_user()->role(.)不要工作..。这是限制用户访问管理面板的正确方法吗?
bp - 3.5
拉拉- 5.7
PHP-7.2
发布于 2019-02-14 16:20:45
首先,创建一个中间件:
php artisan make:middleware AdminMiddleware在这个文件中,我们将检查用户是否具有“admin”角色
<?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发布于 2019-01-25 16:18:42
一种方法是在Http\中间件(如CheckIfAdmin.php )中创建一个具有以下功能的中间件。
private function checkIfUserIsAdmin($user)
{
return ($user->is_admin == 1);
}然后将该中间件添加到数组$routeMiddleware of Http\Kernel.php中。就像下面。
'admin' => \App\Http\Middleware\checkIfUserIsAdmin::class,https://stackoverflow.com/questions/54312691
复制相似问题