Я использую рюкзак для создания админ-панели в моем проекте. У меня есть два типа пользователей: один — Суперадмин, а второй — админ. Я просто хотел дать разрешения superadmin, поскольку он может перечислять, добавлять, редактировать все строки из базы данных ..
но администратор может редактировать, удалять и перечислять только те строки, которые он сам создал.
Поэтому, пожалуйста, помогите мне, я новичок в рюкзаке Laravel ??
Отфильтруйте результаты, которые вы показываете в 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);
}
Надеюсь, поможет.
Других решений пока нет …