Laravel предотвращает действия пользователя - PullRequest
0 голосов
/ 22 сентября 2018

Я использую laravel 5.6 для своего проекта и доверяю работу с пользователями / ролями / разрешениями.

Но сейчас я столкнулся с другой проблемой и не знаю, куда идти.

В основном в моей базе данных у меня есть «общая» таблица с x столбцами.Каждый столбец представляет собой часть моего приложения, поэтому есть только одна строка.

Например, у меня может быть столбец «edit-post» с 0, 1 или 2.

Как запретить пользователюполучить доступ к маршрутам получения / публикации на основе значения базы данных?

Если значение edit-post равно 2, пользователь может просматривать данные редактирования страницы / post.

Должен ли я использовать промежуточное ПО?ворота?что-нибудь еще?

Спасибо за ваши ответы.

Ответы [ 2 ]

0 голосов
/ 22 сентября 2018

Как сказал Raggib: создайте разрешение для таблицы пользователей:

 Schema::create('users', function (Blueprint $table) {
    $table->increments('id');
    $table->string('role');
});

Создайте промежуточное ПО для проверки, имеет ли пользователь разрешения на доступ к записи, которую вы пытаетесь защитить:

if($loggedUser->role != 'admin'){
    // cannot edit
}

Преимущество этого метода в том, что вы можете добавлять роли позже.Это даст вам возможность лучше контролировать, кто может получить доступ к каким записям.

0 голосов
/ 22 сентября 2018

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

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