0

我开始了解 Laravel 框架,并在测试应用程序中使用 santigarcor/laratrust 包来实现角色和权限。对于该项目,我假设一个用户可能有多个配置文件(一对多),并分配了角色和权限。登录后,用户会在会话中自动分配一个默认配置文件,他可以稍后更改。例如:用户 $user 有一个配置文件:经理、编辑和读者。每个配置文件都有不同的角色/权限。默认配置文件是编辑器。登录后,我保存到 Session::put('profile', $user->defaultProfile). 如果我想检查角色,例如在控制器中,我可以这样做:

$profile = Session::get('profile');
$profile->isAbleTo('edit-user');

但是如果我想使用中间件或刀片指令@role(),该怎么做呢@permission()@ability()最佳实践方式?是否可以轻松映射这些方法,以便它们检查的不是用户 (auth()->user()) 而是他选择的配置文件?或者我应该编写自定义中间件和刀片指令?

4

0 回答 0