Как применить разрешение на определенные файлы в laravel? - PullRequest
0 голосов
/ 16 января 2019

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

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

Ответы [ 2 ]

0 голосов
/ 16 января 2019

Вы можете использовать аутентификацию на основе ролей для конкретного пользователя для конкретной задачи. Для этого вы можете следовать этой ссылке 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);

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

0 голосов
/ 16 января 2019

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

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

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

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

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

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

  • user_id и post_id - внешние ключи

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

...