0

我有一个路由,我想授权超过 1 个角色。我创建了 2 个路由组,一个是管理员,另一个是员工,并且有一个路由 abc.com/abc 我想在两个角色上都可以访问。管理路线是:

Route::group(['middleware'=>['auth','role:admin|hr-manager|manager ']],function(){
    Route::get('employee',['as'=>'employee','uses'=>'EmployeeController@employeeList']); 
    Route::get('leave-type',['as'=>'leave.type','uses'=>'LeaveController@getLeaveType']);
}

员工路线是:

Route::group(['middleware' => ['auth','role:employee']], function(){
    Route::get('leave-type',['as'=>'leave.type','uses'=>'LeaveController@getLeaveType']);
}

现在,当我以管理员身份登录时,我无法访问休假类型路由,因为管理员用户没有员工角色,但是当我将管理员用户分配给员工角色时,它将可以访问,并且管理员用户不能是员工,所以我怎么能在两个角色上都可以访问此路线。

使用 laravel 5.4 和 zizaco/entrust 进行 ACL 系统。所以请让我看看这是什么类型的问题以及如何获得解决方案。

提前致谢。

4

1 回答 1

1

如果您需要更多可用于基本组的路由,然后是其他人的特定子集,我建议将路由文件重新组织为如下内容:

Route::middleware(['auth'])->group(function () {

    //Routes available to all users
    Route::get('leave-type',['as'=>'leave.type', 'uses'=>'LeaveController@getLeaveType']);

    //Routes available to employees
    Route::middleware(['role:employee'])->group(function () {

    });

    //Routes available to Admin, HR Manager and Manager
    Route::middleware(['role:admin|hr-manager|manager'])->group(function () {
        Route::get('employee', ['as'=>'employee', 'uses'=>'EmployeeController@employeeList']); 
    });
});
于 2018-11-12T15:59:29.753 回答