php – 网站权限系统的最佳实践

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 网站权限系统的最佳实践脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在开发的当前项目是一个Web应用程序,必须在自己的服务器上交付给多个客户.该网站需要一个权限控制系统,用于管理用户可以使用或不能使用的区域和功能.
至于知道,我正在设计一个数据库驱动的权限系统,权限存储在数据库中.每个用户都有一个角色.该角色定义可用的列表权限.架构如下所示:

用户
1. user_id
2.名字
3. role_id

角色表
1. role_id
2.名字

权限表
PErmission_id
2.名字

roles_permissions表:
1. role_id
2. permission_id

代码中,我将获取已记录的用户角色和权限,并检查用户是否能够执行操作或查看区域,如下所示:

if($user->hasPermission('EdIT hr')) {
  // let user see the editing HR section
}

hasPermission将检查用户是否具有名为“编辑HR”的权限,并将返回所需的结果.我看到的问题是数据库表必须具有名称正好为“编辑HR”的权限记录,而不是“Edit_hr”或“HR Editing”.因此,我必须确保权限系统的数据对于应用程序使用的每个数据库都是相同的.哪种让我觉得这是一个有缺陷的设计,需要重新设计.创建新的部分和功能还需要更新所有数据库,这也使我成为一个悲伤的熊猫.

所以,基本上,问题是:设计数据库驱动的权限系统并在多个数据库上保持数据库完整性的最佳方法是什么

解决方法

你提出的方案看起来很好.我要添加的唯一内容是在权限表上我将添加一个名为tag或类似的字段.

权限标记类似于EDIT_HR,您可以将其用作代码中的引用而不是其名称.使用该名称仅用于显示目的,例如HR编辑.这样,名称可以根据需要变化,并且不会影响您的代码.

脚本宝典总结

以上是脚本宝典为你收集整理的php – 网站权限系统的最佳实践全部内容,希望文章能够帮你解决php – 网站权限系统的最佳实践所遇到的问题。

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

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