дать разрешение на новую роль в 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);
}

объявление $this->Admin относится к Model называется adminModel со следующим атрибутом

 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');

}

EditorModel который используется внутри editorMiddleware имеет этот атрибут:

     protected $table = 'editor'

Вопрос:
Какой правильный или даже хороший подход для его реализации? или у кого-нибудь есть идея или предложение получше?

4

Решение

На самом деле, предложенный вами подход хорош. Создайте промежуточное программное обеспечение «редактор», позволяющее проходить пользователям с ролями «администратор» и «редактор». Я реализовал разрешения таким образом в ряде приложений Laravel. Возможно, вы захотите перенести вызов промежуточного программного обеспечения в метод __contruct () соответствующего контроллера, просто чтобы упростить файл маршрутов и сохранить строку кода для каждого маршрута, но это ни здесь, ни там.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]