Laravel: Политика с несколькими моделями - PullRequest
0 голосов
/ 07 мая 2020

У меня в приложении 3 системы входа: Admin, Company и Employee. После входа в систему все они попадают в один и тот же admin area, например /site.com/admin, с соответствующими правами доступа.

У меня есть раздел под названием Faq, доступ к которому может получить только admin. Поэтому я добавил policy, чтобы справиться с этой ситуацией. Однако, если я вхожу в систему с помощью admin, он работает нормально. Но если я вхожу в систему с помощью Company или Employee, я получаю сообщение об ошибке

Argument 1 passed to App\Policies\UserPolicy::viewAny() must be an instance of App\User, 
    instance of App\Company given

-- Or --

Argument 1 passed to App\Policies\UserPolicy::viewAny() must be an instance of App\User, 
    instance of App\Employee given

Вот мой код:

UserPolicy. php

use App\User;

class UserPolicy
{
    use HandlesAuthorization;

    public function viewAny(User $user)
    {
        return ($user->role == \Common::ROLE_ADMIN);
    }

    ...
}

Layouts / main.blade. php:

...

@can('viewAny', \App\User::class)
    <li><a href="{{ route('admin.faq.index') }}" title="FAQs">FAQs</a></li>
@endcan

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