Laravel 5: разрешение класса не найдено - PullRequest
0 голосов
/ 16 апреля 2020

В моем файле маршрутов я обычно проверяю одно разрешение с can:manage-admin, которое работает нормально. Я прочитал в документации, что проверка нескольких разрешений может быть выполнена с помощью permission и | для их разделения, например permission:manage-admin|manage-whatever. Я изменил значение can usaged на permission ниже, и теперь я получаю сообщение об ошибке «Разрешение класса не существует».

Я разместил свое разрешение. php файл под маршрутами ниже

Маршруты

        Route::group(['middleware' => ['permission:view-user|edit-labels']], function () {
            Route::post('admin/api/scan-barcode', 'Admin\UsersController@checkLabel');
        });

Разрешения. php

<?php

namespace App\Models\Helpers;

use App\Models\User;

class Permissions
{
    /**
     * The user.
     *
     * @var App\Models\User
     */
    protected $user;

    /**
     * The list of all possible permissions.
     *
     * @return array
     */
    public function __construct(User $user)
    {
        $this->user = $user;
    }

    public static function list()
    {
        return [
            'view-user'          => 'View User',
            'edit-labels'        => 'Edit Labels',

        ];
    }

    public static function permissionKeys()
    {
        return array_keys(static::list());
    }

    public function has($permission)
    {
        if ($this->user->isSuperAdmin()) {
            return true;
        }

        if (isset($this->user->permissions['all-permissions']) && $this->user->permissions['all-permissions'] == true) {
            return true;
        }

        if (isset($this->user->permissions[$permission]) && $this->user->permissions[$permission] == true) {
            return true;
        }
        return false;
    }
}
...