访问之前进行角色检查

时间:2018-07-05 21:01:45

标签: laravel laravel-5

我正在尝试从Laravel创建用户系统,并且我计划给某些用户提供“ BETA测试员”角色,以便他们可以访问网站的beta版。

但是,我不确定这是否可能以及我将如何去做。

我正在寻找的计划类型是“网站的Beta版导航>大型登录[如果已经登录则跳过]>检查用户是否具有“ BETA测试员”角色>如果是,请将其发送给测试版网站/如果不告诉他们他们没有访问权限,则

这可能吗?

1 个答案:

答案 0 :(得分:0)

创建一个自定义的中间件类来检查用户的角色:

<?php

namespace App\Http\Middleware;

use Closure;

class Checkrole
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        // hasRole being a function defined on your User model that checks
        // a user's assigned role(s).
        if (auth()->check() && auth()->user()->hasRole('BETA Tester')) {
            return $next($request);
        }

        abort(401, 'You are not allowed to access this page');
    }
}