Получить данные на основе логина пользователя в рюкзаке Laravel

Я использую рюкзак для создания админ-панели в моем проекте. У меня есть два типа пользователей: один — Суперадмин, а второй — админ. Я просто хотел дать разрешения superadmin, поскольку он может перечислять, добавлять, редактировать все строки из базы данных ..

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

Поэтому, пожалуйста, помогите мне, я новичок в рюкзаке Laravel ??

1

Решение

Отфильтруйте результаты, которые вы показываете в setup() метод CrudController вашей сущности, затем запретите доступ к методам обновления / уничтожения.

Ваш результат может выглядеть примерно так:

public function setup()
{
// take care of LIST operations
if (\Auth::user()->hasRole('admin')) {
$this->crud->addClause('where', 'author_id', '=', \Auth::user()->id);
}
}

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

// place this both inside your update() and inside your destroy() method
if (\Auth::user()->hasRole('admin') && $this->crud->entry->author_id!=\Auth::user()->id) {
abort(405);
}

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

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector