首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel背包限制用户访问管理面板

Laravel背包限制用户访问管理面板
EN

Stack Overflow用户
提问于 2019-01-22 16:36:31
回答 2查看 2.4K关注 0票数 4

我试图在checkIfUserIsAdmin中间件中更改CheckIfAdmin ()方法,以禁用对所有没有角色管理的用户的访问

发生了什么,:什么都没有。Backpack_user()->can(…)或backpack_user()->role(.)不要工作..。这是限制用户访问管理面板的正确方法吗?

bp - 3.5

拉拉- 5.7

PHP-7.2

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-14 16:20:45

首先,创建一个中间件:

代码语言:javascript
复制
php artisan make:middleware AdminMiddleware

在这个文件中,我们将检查用户是否具有“admin”角色

代码语言:javascript
复制
<?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中间件,只需附加它)

代码语言:javascript
复制
'middleware_class' => [
    \Backpack\Base\app\Http\Middleware\CheckIfAdmin::class,
    \App\Http\Middleware\AdminMiddleware::class
],

另外,我们必须缓存配置。

代码语言:javascript
复制
php artisan config:cache
票数 8
EN

Stack Overflow用户

发布于 2019-01-25 16:18:42

一种方法是在Http\中间件(如CheckIfAdmin.php )中创建一个具有以下功能的中间件。

代码语言:javascript
复制
private function checkIfUserIsAdmin($user)
    {
        return ($user->is_admin == 1);
    }

然后将该中间件添加到数组$routeMiddleware of Http\Kernel.php中。就像下面。

代码语言:javascript
复制
'admin' => \App\Http\Middleware\checkIfUserIsAdmin::class,
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54312691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档