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

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

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

  }

中间件文件的句柄功能就像

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

    return $next($request);
}

ad $this-> Admin引用名为adminModel的Model,其属性如下

 protected $table = 'admin'

现在我们需要在管理网址组中添加一个新网址,让我们调用它
newAdminUrl对于管理员用户和新用户组都应该是可访问的,让我们称他们为编辑者

将该URL放在admin组之外并为其分配一个新的中间件是一个很好的做法,让我们将其称为editorsMiddleware,添加到管理中间件,以检查想要访问newAdminUrl的用户是在编辑器组还是管理员组和编辑器中存储在另一个表中

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

   }

在editorMiddleware中使用的EditorModel具有以下属性:

     protected $table = 'editor'

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

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

点赞