Php 如何管理对代码和数据库中权限的引用?

Php 如何管理对代码和数据库中权限的引用?,php,security,permissions,coding-style,Php,Security,Permissions,Coding Style,人们如何管理代码库和数据库之间的权限?例如,我的应用程序中充斥着: if($objects['username']['access_type'] == 'edit'){ // print the HTML to edit the username } 或者在OO中: if($user->getPermission('username')->canEdit()){ // print the HTML to edit the username } 如何跟踪对象“用户名

人们如何管理代码库和数据库之间的权限?例如,我的应用程序中充斥着:

if($objects['username']['access_type'] == 'edit'){
    // print the HTML to edit the username
}
或者在OO中:

if($user->getPermission('username')->canEdit()){
    // print the HTML to edit the username
}

如何跟踪对象“用户名”和权限“编辑”的使用位置,以及如何维护这些硬编码权限“标记”与数据库权限表中相关条目之间的链接?当然,有时,其中一些肯定会丢失、重命名或被误用?有什么想法吗?

你能做一个权限表吗

PermissionID-用户ID-模块-权限:

permissionId为autonr,userId为用户,模块为例如“用户名”,permissions为权限类型

您可以将权限字段用作int,并像chmod一样对其使用“and”位运算符: 1=读取,2=写入,1+2=3=读取+写入


这样,您就不必为要授予模块的每个权限排一行。

您好。是的,我已经有一个用户、用户角色、角色、角色权限和权限表。我想知道,一旦我在代码中编写了模块标记username,并且在我的数据库中有了它的表示,人们如何掌握where是什么?例如,如果我在代码中重命名模块,我也必须在DB中重命名它…对此您无能为力。。。您应该以易于查找/记住的方式命名模块。或者可以使用auto_increment字段的值,但这不是一个好主意。您还可以在php中创建一个数组,并将其与mysql中的自动增量字段链接,例如:$mod['username']=1;。但我也不认为这是个好主意…如果。。。HTML/JavaScript代码实际上在数据库的模块表中,而不是在文件中?有点像CMS中的表格中的网站内容。然后,可以想象,通过加入我的用户角色权限模块表,对于任何用户,我都可以从数据库返回所需的代码,并使用搜索和替换来填充值,一点一点地构建页面?将模块名称直接从模块表加载到URL中。而不是在loadmodule页面中检查此模块的权限?