如何在laravel中对特定文件应用权限?

时间:2019-01-16 04:36:35

标签: laravel spatie

我是laravel的新手,我想开发和应用程序来管理帖子,例如一些基本的CRUD操作等。我需要一些指导,以指导我如何为特定用户在特定帖子上添加特定权限?听起来有些混乱,但我希望其他用户不要看到彼此的帖子,而只能看到创建者用户允许看到的帖子。 从数据库架构到其编码,与这个小项目有关的任何指导,我将不胜感激。

我确实为laravel尝试了一个名为Spatie的软件包,但我不知道它是否将完全支持这种情况?

2 个答案:

答案 0 :(得分:1)

您正试图授予对数据库中特定帖子的特定用户组的访问权限。 如果这种情况是正确的,则可以使用数据库中的表来实现。

为此,您需要自定义一些表格,如下所示:

步骤1:
在您的帖子表中添加一个名为access_level

的附加列

步骤2:
当用户选择该帖子公开时,请在该public列中添加access_level关键字

第3步:
当您运行select查询以显示所有帖子时,只需运行where这样的where access_level = "public"查询

如果要向特定用户显示特定帖子,则需要创建一个名为post_users的表

  • user_idpost_id是外键

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

答案 1 :(得分:0)

您可以对特定用户使用基于角色的身份验证来执行特定任务。 为此,您可以按照git参考

Laravel permission

$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);

您还可以检查简短的编码here