[英]grant permission to a new role in Laravel 5
我们正在开发一个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);
}
ad adminModel
$this->Admin
引用名为adminModel
Model
,其属性如下
protected $table = 'admin'
现在我们需要在管理网址组中添加一个新的网址,让我们称之为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');
}
在EditorModel
中使用的editorMiddleware
具有以下属性:
protected $table = 'editor'
问题:实施它的正确方法是什么? 或者任何人有更好的想法或建议?
真的,你提出的方法很好。 创建一个“编辑器”中间件,允许具有“管理员”和“编辑”角色的用户通过。 我已经在许多Laravel应用程序中以这种方式实现了权限。 您可能需要考虑将中间件调用移动到相关控制器的__contruct()方法,以简化路由文件并为每个路由保存一行代码,但这既不在这里也不在那里。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.