首页 / PHP / php – 网站权限系统的最佳实践
php – 网站权限系统的最佳实践
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – 网站权限系统的最佳实践,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1241字,纯文字阅读大概需要2分钟。
内容图文
![php – 网站权限系统的最佳实践](/upload/InfoBanner/zyjiaocheng/770/2f1ce590d47148b3833128787cc33fab.jpg)
我正在开发的当前项目是一个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 – 网站权限系统的最佳实践所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。