Laravel нова ограничить viewAny () - PullRequest
1 голос
/ 28 января 2020

Когда я хочу, чтобы пользователи не могли вводить отдельный ресурс, я могу использовать политики для выполнения следующих действий:

public function view(User $user, Model $object)
{
    if($user->groupName != $object->groupName) {
       return false;
    } else {
       return true;
    }
}

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

Result

Мой желаемый результат состоит в том, что компонент should not be seen вообще не показано Как мне этого добиться?

Я пытался:

public function viewAny(User $user)
{
     // $object does not exist here so I cannot use it to filter
     if($user->groupName == $object->groupName) {
       return true;
    } else {
       return false;
    } 
}

1 Ответ

1 голос
/ 28 января 2020

Вам необходимо обновить индексный запрос вашего ресурса. подробнее

public static function indexQuery(NovaRequest $request, $query)
{
    return $query->where('groupName', $request->user()->group_name);
}

Вам также следует обновить релевантный запрос.

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