Один и тот же маршрут в нескольких ролях и группах маршрутов? - PullRequest
0 голосов
/ 12 ноября 2018

У меня есть маршрут, который я хочу авторизовать для более чем одной роли. Я создал 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.поэтому, пожалуйста, дайте мне знать, что это за проблема и как ее решить.

Заранее спасибо.

1 Ответ

0 голосов
/ 12 ноября 2018

Если вам нужно больше маршрутов, которые доступны для базовой группы, а затем определенное подмножество для других, я бы предложил реорганизовать файл маршрутов следующим образом:

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']); 
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...