Рюкзак Laravel ограничивает доступ пользователей к панели администратора - PullRequest
0 голосов
/ 22 января 2019

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

Что случилось : Ничего такого. backpack_user () -> can (...) или backpack_user () -> роль (...) не работает ... Это правильный способ ограничить доступ пользователей к панели администратора?

пн - 3,5

Ларавелла - 5,7

php - 7.2

Ответы [ 2 ]

0 голосов
/ 14 февраля 2019

Сначала создайте промежуточное ПО:

php artisan make:middleware AdminMiddleware

В этом файле мы проверим, есть ли у пользователя роль администратора

<?php
namespace App\Http\Middleware;
use Closure;
class AdminMiddleware
{
    public function handle($request, Closure $next)
    {
        if (! \Auth::user()->hasRole('admin')) 
            return response(trans('backpack::base.unauthorized'),401);
        return $next($request);
    }
}

Теперь добавьте это промежуточное ПО в /config/backpack/base.php

.

(не удаляйте промежуточное ПО CheckIfAdmin, просто добавьте его)

'middleware_class' => [
    \Backpack\Base\app\Http\Middleware\CheckIfAdmin::class,
    \App\Http\Middleware\AdminMiddleware::class
],
0 голосов
/ 25 января 2019

Одним из способов является создание промежуточного программного обеспечения в Http \ Middleware, такого как CheckIfAdmin.php с функцией ниже.

private function checkIfUserIsAdmin($user)
    {
        return ($user->is_admin == 1);
    }

Затем добавьте это промежуточное программное обеспечение в массив $ routeMiddleware файла Http \ Kernel.php.Как ниже.

'admin' => \App\Http\Middleware\checkIfUserIsAdmin::class,
...