Как применить разрешение на определенные файлы в laravel?

Я новичок в laravel и хочу разработать приложение для управления постами, такими как некоторые основные операции CRUD и так далее. Что мне нужно, так это небольшое руководство о том, как добавить конкретное разрешение на конкретную публикацию для определенных пользователей? это может показаться немного запутанным, но я хочу, чтобы другие пользователи не видели сообщения друг друга, а только те сообщения, которые пользователь-создатель разрешает видеть. Буду признателен за любые рекомендации, связанные с этим небольшим проектом, от схемы базы данных до ее кодирования.

Я попробовал пакет под названием Spatie для laravel, но я не знаю, будет ли он полностью поддерживать этот сценарий или нет??

2 ответа

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

Для этого вам нужно настроить некоторые из ваших таблиц, как показано ниже:

Шаг 1:
В вашей таблице сообщений добавьте дополнительный столбец с именем access_level

Шаг 2:
Когда пользователь выбирает сообщение как общедоступное, затем добавляет public Ключевое слово в этом access_level колонка

Шаг 3:
Когда ты бежишь select запрос, чтобы показать все сообщения просто запустите where запрос как этот where access_level = "public"

Если вы хотите показать патичную публикацию патичному пользователю, вам нужно создать таблицу с именем post_users

  • user_id а также post_id внешние ключи

| id | user_id | post_id |
| 1 | 12 | 22 |
| 2 | 22 | 22 |

Вы можете использовать ролевую аутентификацию для конкретного пользователя для конкретной задачи. Для этого вы можете следовать этой ссылке git

Разрешение Laravel

$user->assignRole('writer');
$user->removeRole('writer');
$user->syncRoles(params);
$role->givePermissionTo('edit articles');
$role->revokePermissionTo('edit articles');
$role->syncPermissions(params);
$permission->assignRole('writer');
$permission->removeRole('writer');
$permission->syncRoles(params);

Вы также можете проверить краткую кодировку здесь

Другие вопросы по тегам