Laravel 5.8 Несколько промежуточных программ, использующих охранники и определяющих c параметров для каждого охранника - PullRequest
0 голосов
/ 05 марта 2020

У меня есть приложение laravel, которое позволяет администраторам и клиентам получать к нему доступ, и для каждого из них будут заданы определенные разрешения c с использованием 2 отдельных таблиц для каждого типа пользователя для авторизации и 2 разных охранников. Теперь мне нужно предоставить клиентам доступ к указанным c методам внутри контроллера, а администратор имеет доступ ко всем методам.

class OrdersController extends Controller
{
    public function __construct()
    {
        $this->middleware(['auth:client'])->only(['index', 'create', 'store', 'edit', 'printOrder']);
        $this->middleware('auth:admin');
    }

, но он отлично работает для клиента и не работает для администратора

Ответы [ 2 ]

1 голос
/ 05 марта 2020

У вас есть две опции

  1. , для определения необходимого промежуточного программного обеспечения на соответствующих маршрутах
Route::get('/some-route', [
    'uses' => 'OrdersController@create',
    'as' => 'create-order',
])->middleware('auth:client');
проверка внутри метода, правильная ли аутентификация имела место auth('auth:client')->check()
0 голосов
/ 05 марта 2020

Я предлагаю разделять контроллеры, когда доступ основан на ролях (не разрешениях), в противном случае (если доступ основан на разрешениях), промежуточное программное обеспечение также должно основываться на разрешениях, например

$this->middleware('can:update order')->only(['update','edit']);
$this->middleware('can:store order')->only(['store','create']);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...