2009-11-04 40 views
1

我目前正在编写一个约6-12页的Web应用程序。在这些页面的每一页上,我希望用户能够执行以下操作中的一些(或全部)操作:查看,添加,更新和删除。优雅的Web权限方案

我想的是具有在一个数据库中的一个整数。当前许可方案。该整数将对应于二进制数(例如:26 - > 11010)。生成的二进制数字充当“切换”并确定用户拥有什么权限。什么位代表什么权限的定义存储在另一个表中。

我的问题是,如果每一页都有4个选项(查看,添加,编辑,删除),那么这个决定的权限可能失控的方式。

没有人有权限方案,这将是灵活的(相对于可配置)任何其他的想法,但在这铺天盖地(相对于整数限制)?

回答

5

也许一个更好的答案,如果你真的需要走这条路线,是有一个单页/每用户排在数据库中,与一组权限,所以你的表看起来像这样:

page  user  create read update delete 
=====  ===== ====== ==== ====== ====== 
test.html joe  y  y y  n 
test2.html joe  n  y y  n 

或者,因为通常情况下,你最好有角色,如作者,编辑,审稿人,管理,并给予你的角色的细粒度的权限,并把用户进入角色。

2

我建议你不要再打位。在数据库中为每个权限类别使用单独的列,并使用整数1和0来表示该权限是否被授予。这样可以避免位操作,并且速度也会很快。唯一的缺点是大量的列,根据你的描述,这似乎不是什么大问题。

+1

这个 - 它可能觉得你在炫耀你的技术印章使用按位表示对您的权限做了伟大的工作,如果这是你的目标,然后去,但在半年的时间,当你有要回过头去重新看看那些代码来解决一些已经出现的问题,你会希望你已经找到了明显而易于维护的解决方案。 – glenatron 2009-11-04 12:58:48