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

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

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

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


person Birendra Singh    schedule 20.04.2017    source источник


Ответы (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);
}

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

person tabacitu    schedule 20.04.2017
comment
спасибо за ответ. Но я просто не хочу показывать страницу редактирования. Так куда мне поставить этот чек ..? - person PHP Geek; 21.04.2017
comment
и он также показывает ошибку - Попытка получить свойство не-объекта в строке, где я пишу $ this- ›crud-› entry_created_by .. пожалуйста, дайте мне решение - person Birendra Singh; 21.04.2017