探讨一个权限设计方案
lawbc 2011-07-07 05:24:37 我觉得权限包括:功能权限、资源权限、菜单权限、数据权限,在运用系统中,无论是bs还是cs中,都是很常见的一个功能
那么怎么来实现系统中的权限管理呢?本人没有开发过权限系统,只是上网看过很多帖子什么,比较迷惑,所以想请大家探讨
下怎么来设计权限
大概的功能是这样的:
1、可以根据不同角色(或权限)的用户使用不同的菜单,就是系统登录后左侧菜单是根据用户的角色或权限来读取的
2、可以对某一个功能进行权限控制,比如用户A可以删除新闻,用户B可以添加用户,如果没有权限就不显示按钮或者链接等
3、可以对某一资源进行权限控制,比如新闻就是一种资源,新闻的创建者可以对新闻进行修改、删除,浏览
但是不能审核,其他普通用户(或者说属于某个部门或某个组的用户)可以浏览,但不能删除
4、可以对数据(资源)进行权限控制,比如订单,用户A可以浏览金额为0-1000元的订单,用户B可以浏览0-5000的订单
1、2、3这3个功能基本上都需要用上,第四个比较少用,那么在系统中应该怎么来设计才比较合理,需要考虑数据库查询的复杂度和程序的复杂度
再来说下程序需要怎么判断权限:
1、菜单权限就不说了,这个最简单了,只要查询出来用户拥有的权限菜单就可以了
2、对于程序中,用户如果没有某个按钮的操作权限,那么应该隐藏,这个怎么做呢,我的想法是把按钮的页面url,
按钮Id 什 么的都入库,跟具体的权限管理起来,只要就可以判断了。
3、当用户拥有某个按钮的权限,那么就必须显示出来,那么当用户点击这个按钮提交的时候,是否需要进行一次权限判断呢
如果需要,那么怎么做