PHP 7.3 Laravel 5.8 Laravel 背包 3.6
我正在尝试'role:admin'
在我的routes/backpack/permissionmanager.php
文件中使用中间件,将对 Backpack 的用户、角色和权限区域的访问限制为具有某些角色的用户子集。
我已确保我的用户帐户已被授予正确的角色。
我的'user'
模型config/backpack/permissionmanager.php
设置为,App\User::class
并且我的User
模型具有并使用文档中概述的必要特征。
我在role
我的应用程序中放置了一个中间件,如下所示:
<?php
namespace App\Http\Middleware;
use Closure;
class RoleMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next, $role)
{
if (backpack_auth()->guest()) {
return redirect('login');
}
if (! backpack_user()->hasRole($role)) {
abort(403);
}
return $next($request);
}
}
然而,似乎这个中间件backpack_user()
虽然通过正确的属性返回知道我是谁->name
,但完全不知道我应该分配给自己的角色或权限。我已经使用该->getRoleNames()
方法进行了检查,它返回一个空集合。
在数据库中,model_has_roles
为我的用户帐户和我想要的角色在表中设置了正确的条目和 ID。
但是,导航到myapp.dev/admin/user
结果为403 Forbidden
.
我认为这可能是一个错误,或者我不能正确看到的东西......?