Permissions 优雅的Web权限方案

Permissions 优雅的Web权限方案,permissions,binary,flags,Permissions,Binary,Flags,我目前正在编写一个web应用程序,大约有6-12页。在每个页面上,我希望用户能够执行以下部分或全部操作:查看、添加、更新和删除 我想到的当前权限方案是在数据库中有一个整数。该整数将对应一个二进制数,例如:26->11010。生成的二进制数用作切换并确定用户拥有的权限。位的定义表示存储在另一个表中的权限 我的问题是,如果每个页面都有4个选项:查看、添加、编辑、删除,那么这种确定权限的方式可能会失控 是否有人对权限方案有任何其他想法,该方案在可配置性方面与此一样灵活,但在整数限制方面却不那么强大?我

我目前正在编写一个web应用程序,大约有6-12页。在每个页面上,我希望用户能够执行以下部分或全部操作:查看、添加、更新和删除

我想到的当前权限方案是在数据库中有一个整数。该整数将对应一个二进制数,例如:26->11010。生成的二进制数用作切换并确定用户拥有的权限。位的定义表示存储在另一个表中的权限

我的问题是,如果每个页面都有4个选项:查看、添加、编辑、删除,那么这种确定权限的方式可能会失控


是否有人对权限方案有任何其他想法,该方案在可配置性方面与此一样灵活,但在整数限制方面却不那么强大?

我建议您不要求助于bits。在数据库中为每个权限类别使用单独的列,并使用整数1和0指示是否授予该权限。这样可以避免位操作,而且速度也会很快。唯一的缺点是栏目数量较多,根据您的描述,这似乎不是什么大问题。

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

如果您确实需要这样做,也许更好的答案是在数据库中有一个每页/每用户行,并具有一组权限,因此您的表看起来是这样的:

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

或者,通常情况下,您最好拥有角色,如作者、编辑、审阅者、管理员,并为您的角色授予细粒度权限,并将用户放入角色中

如果您真的需要这样做,那么更好的答案可能是在数据库中有一个每页/每用户行,并具有一组权限,因此您的表如下所示:

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

或者,通常情况下,您最好拥有角色,如作者、编辑、审阅者、管理员,并为您的角色授予细粒度权限,并将用户放入角色中

这-通过使用权限的位表示,您可能觉得自己在展示自己的技术技能方面做得很好,如果这是您的目标,那么就去实现它,但在六个月后,当您必须返回并重新访问代码以修复出现的某个问题时,你会希望你选择了显而易见的、易于维护的解决方案。这可能会让你感觉你在展示你的技术技能方面做得很好,使用位表示来表示你的权限,如果这是你的目标,那就去做吧,但在六个月后,当您必须返回并重新访问该代码以修复出现的一些问题时,您会希望您选择了显而易见且易于维护的解决方案。