首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel权限枢轴表

Laravel权限枢轴表
EN

Stack Overflow用户
提问于 2022-08-04 09:14:16
回答 1查看 166关注 0票数 0

我正在制作自定义权限

我希望把它们分成几个部分,例如订单、客户等,每个部分都有一些允许,例如编辑、删除、添加。为了检查某个特定用户是否有访问权限,我必须从节模型开始吗?

因为我不能做像Auth::user()->permissions()->with('sections')->contains('name','display')->contains('sections','order')这样的事情

我想简单地检查一下用户是否可以访问,例如,order.display。我有一种感觉,这部分在这里是没有意义的。

该怎么做呢?我知道有一个空间(laravel-许可),但那里有一个角色划分。

数据库的示例模式(user_permission是一个支点):

EN

回答 1

Stack Overflow用户

发布于 2022-08-04 11:20:06

我的建议是,如果您要寻找一些简单的东西,请删除sections表,只需在permissions表中拥有所有权限。假设您在权限中有一个名为dashboard的部分,您可以拥有view_dashboard edit_dashboard等。然后,要检查用户是否已被授权,请在正式文件下面实现hasManyThrough逻辑。

(未经测试)

代码语言:javascript
复制
public function permissions()
{
    return $this->hasManyThrough(Permissions::class, UserPermissions::class);
}

public function permission_check($permission_to_check)
{
    return $this->permissions->contains($permission_to_check);
}

然后,如果在许多地方检查权限,则可以在用户模型上加载permissions()以减少DB查询。

希望这有帮助,请告诉我是否可以进一步协助:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73233252

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档