有点搞不懂这个多角色权限管理包,manage_contents 权限怎么就对应的可以管理帖子和回复?

manage_contentsmanage_usersedit_settings在程序中怎么就可以对应有管理帖子、回复、用户等权限的?

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 6

还是自己设计比较好,一个思路:
模型分为:用户 用户组 权限;
用户--用户组:多对多关系,一个用户可以属于多个用户组,一个用户组可以有多个用户;
用户组--权限:多对多关系,一个用户组可以有多个权限,一个权限可以有多个用户组;
将所有路由都加入权限表;
创建用户组并制定该组所拥有的权限;
将用户加入对应的用户组,以获得该组所拥有的权限;

5年前 评论

@tsin 确实 在实际项目中也多少这么做的 如果按照这个插件的权限做 感觉最后会很乱套

5年前 评论

@um-summer 可以了解下RBAC(基于角色的权限控制,Yii2带有此功能)

5年前 评论

@tsin 嗯嗯 这个我了解 之前的项目权限也都是按照这个做的 都是明确到每个节点上 laravel 有匹配度比较高的这种权限管理吗?

5年前 评论

以下是鄙人自己的理解 , 看到这条话题的时候 , 开始我也懵了 , 回去再看一遍代码后 , 自己的思路也就清晰了

  • 代码生成器所生成的授权策略,都会统一继承 App\Policies\Policy 基类

也就是所有授权策略都是其派生类 , 基类 中的 before 函数都会先于其派生授权策略执行

而其中的 if ($user->can('manage_contents')) 判断是否拥有内容相关操作权限

如果拥有则直接返回 true 使通过权限 , 后面所有权限则无需再次判断

这部分只是讲了manage_contents

还没涉及到 manage_users、 edit_settings

所以我们这里看到的就是不管什么授权策略 , 只要用户拥有 manage_contents 则全数通过

这部分的权限则在后面章节 (我还没看到后面) 才会说到 , 也肯定会有所改动 .

4年前 评论

我个人理解是 'manage_contents '这个字符串是初始化时自定义的,你可以改成别的,只要能记住就行

初始化数据时,已经通过关联 把1号用户设置了这个'manage_contents '

在策略基类中 只需要判断 ,当前用户是否有'manage_contents ' 这个字符串就行, 有的话就返回 true ,

当基类返回true时,子类的那些策略方法都会直接通过不再继续验证,所有就相当于拥有了总权限

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!