PHP复杂的基于角色的访问控制列表

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了PHP复杂的基于角色的访问控制列表脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经制作了实现这个自定义ACL系统所需的数据库PHP代码.现在我必须’授权’当前用户,这就是我需要你的建议的地方.

该系统基于对系统用户和系统模块的灵活权限分配.它还有一些预定义的,比如用户组,也可以制作完全自定义的组.全局规则也可以应用于ACL之上,但它的优先级低于分配了权限的组或用户.

更好地描绘它:

预定义组:

>有限(无法访问)
>基本用户
>高级用户
>管理员
>访客(定制组的样本)

以下是访问级别(名称/值对):

>不允许/ 0
>允许/ 1
>拒绝/ 2
>如果拥有者/ 3允许

注意:’允许’在’禁止’上具有更高的优先级,因此如果您在组A上有用户X’禁止’,但在某个访问中有B组’允许’,那么他最终会’允许’.另一方面,如果用户X通过成为“管理员”组的成员而具有“完全访问权限”,但如果他只是在某个访问权限上“拒绝”,则他最后没有访问权限,这意味着“拒绝”优先于’允许’.

在顶层你可能有类似这样的东西:

>“Administrator”*“1”,表示管理员对系统具有完全访问权限
>“访客”*“0”,表示访客不得进行任何操作

我的问题是如何处理这类检查?想象一下,我们有一个简单的授权机制.我们在$_SESSION [‘user’]中会有一些索引,比如$_SESSION [‘user’] [‘login’] = true;和$_SESSION [‘user’] [‘id’] = $row [‘user_id’],对吗?

现在,如果你想在你的脚本上实现这个机制,你将如何做到一点

我可能会首先检查全局访问规则.然后我会查看用户是否登录.如果是,只需获取所有组,然后查看权限表以查看为其组分配了哪些权限及其用户ID,然后将其存储在用户会话中.然后,当模块说这是我需要运行的权限时,我会查看用户是否有足够的权限访问所请求的模块.

看起来很复杂!任何帮助或建议都非常感谢!

本图文内容来网友网络收集整理提供,作为学习参考使用,版权属于原作者。

脚本宝典总结

以上是脚本宝典为你收集整理的PHP复杂的基于角色的访问控制列表全部内容,希望文章能够帮你解决PHP复杂的基于角色的访问控制列表所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。