laravel функция разрешения - PullRequest
       0

laravel функция разрешения

1 голос
/ 04 февраля 2020

У меня есть работающая функция в контроллере, но я хочу добавить шлюз разрешений, чтобы использовать эту функцию.

По сути, прямо перед строкой collect в первом разделе я хочу добавить Gate::allows('can-fix', 'testFix') ?: parent::denyAccess(); но я тестирую его, и хотя у меня нет возможности 'testFix', он все равно пропускает меня через

Я не хочу добавлять ворота на уровне маршрута, я хочу это действительно доступ к методу контроллера, но выгоните меня, если мне не разрешено что-либо делать в самом методе.

Я неправильно объявляю ворота здесь?

    public function editCategorySort(categorySur $category, Request $request, $categoryGroup)
    {
        Gate::allows('can-fix', 'testFix') ?: parent::denyAccess();
        collect($request->input('sur'))
            ->each(function ($asset) use ($categoryGroup, $category) {
                $data = [
                    'category_sur' => $asset['category_sur'],
                    'type' => $asset['type'],
                ];
                $category_sur_id = $asset['id'];
                $category->updateCategoryGroup($categoryGroup, $category_sur_id, $data);
            });
    }

1 Ответ

1 голос
/ 05 февраля 2020

Я не уверен, как вы определили свои ворота, но код ниже работает для меня.

controller

Route::get('/test', function () {
    Gate::allows('can-fix') ?: dd('you do not have the access');

    dd('yes you can reach here');
});

app\Providers\AuthServiceProvider.php

    public function boot()
    {
        $this->registerPolicies();

        Gate::define('can-fix', fn () => true);
    }

так что если fn () => true результат равен "yes you can reach here" если fn () => false результат равен "you do not have the access"

Надеюсь, это поможет!

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