gpt4 book ai didi

php - 授予 Laravel 5 中新角色的权限

转载 作者:可可西里 更新时间:2023-10-31 23:29:25 25 4
gpt4 key购买 nike

我们正在开发一个 laravel 应用程序,该应用程序有一个管理部分,只有我们拥有的 routes 文件中的管理员用户可以访问该部分:

 Route::group(['middleware' => 'admin', 'prefix' => 'admin', 'namespace'
=> 'Admin'] , function() {
Route::get('oldAdminUrl', 'oldControllwe@handle');

}

middleware 文件的句柄函数是这样的

public function handle($request, Closure $next)
{
if ($this->admin->guest())
{
//some code here
}

return $next($request);
}

广告 $this->Admin 引用名为 adminModelModel 具有以下属性

 protected $table = 'admin'

现在我们需要将一个新的 url 添加到管理 url 组中,让我们称之为newAdminUrl 它应该可供管理员用户和一组新用户访问,我们称他们为 editors

将该 url 放在 admin group 之外并为其分配一个新的 middleware 是一个好习惯吗?我们称它为 editorsMiddleware admin middleware 检查要访问newAdminUrl 的用户是否在编辑组或管理组中,编辑器存储在另一个表中

 Route::group(['middleware' => ['admin','editors], 'prefix' => 'admin',      
'namespace' => 'Admin'] , function() {
Route::get('newAdminUrl', 'newControllwe@handle');

}

editorMiddleware 中使用的 EditorModel 有这个属性:

     protected $table = 'editor'

问题:实现它的正确甚至好的方法是什么?或者谁有更好的想法或建议?

最佳答案

确实,您建议的方法很好。创建一个“编辑器”中间件,允许具有“管理员”和“编辑器”角色的用户通过。我已经在许多 Laravel 应用程序中以这种方式实现了权限。您可能想考虑将中间件调用移动到相关 Controller 的 __contruct() 方法,只是为了简化您的路由文件并为每个路由保存一行代码,但这既不是这里也不是那里。

关于php - 授予 Laravel 5 中新角色的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33396141/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com