`
爱老虎哟
  • 浏览: 874 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论
阅读更多
转自:http://www.jdon.com/jivejdon/thread/37375
本人在项目中关于用户角色权限的经验 2009年10月28日 13:29 收藏关注本主题 到本帖网址 加入本帖到收藏夹 请用鼠标选择需要回复的文字再点按本回复键 回复该主题
标签 权限    
1
顶一下
》banq 我目前是把职务看成就是角色。
非常赞同职务就是角色这个说法
举个现实中的例子:

一般公司:有总经理,部门经理,部门主管等等,这些是职务,对应角色。
总经理有炒人,签合同职责,部门主管有审查签到,这些是职责,对应权限,职务包含很多职责,是职责的集合。
你进了一个公司,老板说你是部门主管,你就知道你有哪些职责,能否炒人就看公司制度里规定的部门主管有没有炒人职责。
哪一天总经理出差,他出门说了一句:我出差这段时间你暂替一下我的工作。这句话的含义是他将总经理这个角色赋于你,
这段时间你可以炒人,签项目合同,因为你有总经理角色,你是老大。他总不会说这段时间你可以炒人,签合同,招人。。。

小公司:创业时就三个人,制度不完善,没有这些职务,小张负责招人,小刘负责弄钱,小王负责项目。
这就将每一个用户具体到职责了,就不存在职务(角色)的概念,所以小项目不需要角色。


我在这一口气看了五个角色权限的主题,从02,03年的文章看到09年
权限角色的粗细真的是对不能系统而言,没有通用的法则
我理解的概念是:(我在现有项目也是这样做的)
用户USER,是唯一的,体现在系统中登录id。
权限privilege,是系统中定义好的function,固定有什么,如:增,删,改,查,审核等
角色是权限的集合,类似于公司的职务,如总经理
角色概念的使用不是必须的,但是经常会要有,
因为操作很多,不能直接将用户和权限关联的。
用户可以有组,角色可以有组
一个用户可以有多个角色,但一次登录只有一个角色
开发部,市场部,是属于组织结构范畴,通常表现为树状,有时也会网状(网状会比较复杂)

项目应用或举例:
1:mysql的权限控制,直接将用户和权限挂钩,没有角色的概念,因为他的权限不多,只有增,删,查,创建,drop。。。
表如下:
用户 权限 资源
user privilege table
2.oracle中是有角色概念的
3.角色的概念不是必须的,但为了方便赋于权限,通常会有
举例:总经理出差的举例,他不会将他的职责全部列给你听。
4.还有一点不知道哪一个贴子了,有人将功能和资源分开,说重用性比较大,如下:权限(功能资源表)(多对多关联表)
id 功能 资源
1 增 新闻
2 改 新闻
3 驳回 简历

角色权限表
角色 功能权限id
编辑 1
编辑 2
经理 1
经理 2
经理 3

但是这样太细,用户极有可能增加了一条 “4. 驳回 新闻”的权限,显然是错误的,你又是如何控制这条非法权限的呢。
事实上,权限就一列即可,系统定制的。
权限表
id 功能权限
1 增新闻
2 改新闻
3 驳回简历

角色权限表同上(不用改),用户需自定义角色时,只需将角色和权限加到角色权限表中即可。
这样再将用户和角色多对多关联起来。

4. 至于开篇说的问题,市场部经理不能查看和修改技术部的人员,这是属于组织架构的问题,是数据过滤的权限,也跟业务有关系了。
跟角色没有必然联系。采用树形过滤,就可以很好解决。

5. 至于还有人提出的包含排除的问题,角色权限表设计成头和明细的方式,更好,头有角色,包含排除,明细有具体权限。这样可以减少大量数据和操作
例如:表头
表Access
表头id 角色 其他是否包含
1 总经理 是
2 编辑 否
表AccessLine
表头id 功能权限id 允许
1 1 否
2 1 是

这样总经理只有all-1即除了“增新闻”的全部权限。
编辑只具有0+1即只有“增新闻”的权限


总之,用户没有直接跟权限关联(当然不是必须这样设计),用户与角色关联,通过角色可以知道权限。这样角色可以复用,可以扩展,
操作简易,至于角色的继承是后一步具体实现的问题,还有用户的组,角色的组,都是同理的。这样才是一个比较好的解决方案。
我现在的项目就这样做的,希望同道之人指出不妥之处。谢谢

本论坛中相关主题
http://www.jdon.com/jivejdon/thread/2897
http://www.jdon.com/jivejdon/thread/7309
http://www.jdon.com/jivejdon/thread/10122
http://www.jdon.com/jivejdon/thread/17652
http://www.jdon.com/jivejdon/thread/13450
分享到:
评论

相关推荐

    PHP权限管理系统源码

    1、角色管理:添加角色、编辑角色、删除角色、角色授权 2、权限管理:添加权限、编辑权限、删除权限、 3、用户管理:添加用户、编辑用户、删除用户 4、日志管理:登录日志 5、文章管理:模拟菜单

    基于ThinkPHP5开发的漂亮通用后台全权限管理系统

    又来分享一款基于最新thinkphp5开源框架5.0.13版本开发的通用后台权限管理系统,这是一款基于ThinkPHP5.0.13 + layui2.2.45 + ECharts +Mysql开发的后台管理框架,PHP版本要求提升到5.5。集成了一般应用所必须的基础...

    授权到窗口按钮的权限管理.rar_c#权限管理_授权_授权管理_权限_权限管理

    授权到窗口按钮的权限管理

    php权限管理系统

    根据权限管理系统流程图可得到系统功能呢如下: (1) 游客注册功能:游客可以通过注册成为会员,从而进入系统。 (2) 普通用户功能:在前台界面中,只要注册成功的普通用户就可以进行会员的相关操作。 (3) 管理...

    c#通用版权限管理系统

    主要功能有:权限管理、角色管理、部门管理、用户管理、公司管理、模块管理、系统设置。适用 OA、财务、人力等办公软件系统 的二次开发,以关键字(Key)的方式来定义系统的权限,使系统权限分配更加贴合企业需求。...

    Kinguser授权管理包.zip

    “Kinguser授权管理”是由Kingroot团队开发的一款安卓手机权限管理软件,具有root权限授权、软件权限管理两大功能。 与Superuser相比,“Kinguser授权管理”具备以下6大特色,更适合Android开发者及普通用户使用: 1...

    权限管理系统,或者资源授权管理中心,或者权限控制中台

    权限管理系统,或者资源授权管理中心,或者权限控制中台。资源空间(相当于应用系统)。资源组(相当于频道、模块)。资源可见(相当于菜单),可不见(相当于权限码)。主体组可见(相当于企业、机构、部门),不...

    Winform通用框架之权限管理系统界面

    Winform通用框架之权限管理系统---------菜单,开发界面。 在csdn一篇博客中看到文章Winform通用框架之权限管理系统,但是只有文章没有源码就是耍流氓。于是自己写了出来,可用于所有管理系统的开发框架。 软件的...

    基于SpringBoot + MyBatis + Layui的后台权限管理系统.zip

    基于SpringBoot + MyBatis + Layui的后台权限管理系统。代码简洁易懂、界面美观大方,内部封装了权限管理系统常用的全部功能,可直接作为快速开发JavaWeb项目的脚手架使用。 基于SpringBoot + MyBatis + Layui的...

    PHP权限管理系统.zip

    PHP权限管理系统源码 PHP权限管理系统源码 PHP权限管理系统源码 PHP权限管理系统源码 PHP权限管理系统源码 PHP权限管理系统源码 PHP权限管理系统源码 PHP权限管理系统源码 PHP权限管理系统源码 PHP权限管理...

    基于SpringBoot+vue的前后端分离权限管理系统,界面美观,代码简洁易读。

    基于SpringBoot+vue的前后端分离权限管理系统,界面美观,代码简洁易读。 基于SpringBoot+vue的前后端分离权限管理系统,界面美观,代码简洁易读。 基于SpringBoot+vue的前后端分离权限管理系统,界面美观,代码...

    ASP.NET通用权限管理系统(FrameWork) 1.0.8源码版

    3)采用角色来进行权限的授权,每个用户可以属于多个角色,享有交差权限. 4)整合方便,权限检测采用httpmodule方式检测.基本不用对原有程序进行修改,便可将原有程序进行整合. 5)可视化编辑,全新的Menu和Tab控件.支持拖拉...

    通用权限管理系统+springboot+mybatis plus+spring security+jwt+redis+mysql

    通用权限管理系统可练手可毕设,如果项目中有权限开发要求可直接拿来基础开发。 系统设计包括前端Vue框架和后端SpringBoot框架的搭建,以及数据库和权限控制模块的设计。前端使用Vue框架进行页面开发,利用Vue ...

    权限管理数据库

    权限管理,是针对权限管理这个模块进行练习的,其中用的是struts1框架和jequery等,仅供与参考。

    ASP.NET通用权限管理系统源代码(含文档、数据库)

    ASP.NET通用权限管理系统源代码(含文档、数据库) 1.菜单导航管理 2.操作按钮 3.角色管理 4.部门管理 5.用户管理(用户权限) 6.用户组管理(设置成员,用户组权限) 7.系统配置(动态配置系统参数) 8.附加属性...

    基于springcloud+springboot+vue搭建的权限管理系统

    为了帮助企业方便快捷地管理商品信息的后台数据,开发了一个企业权限管理系统。该系统包括用户管理、角色管理、资源权限管理、基本数据管理模块;用户管理模块基于Spring Security的用户登录、退出操作,以及用户查询...

    ASP.NET权限管理系统(FrameWork) v1.0.5

    3)采用角色来进行权限的授权,每个用户可以属于多个角色,享有交差权限. 4)整合方便,权限检测采用httpmodule方式检测.基本不用对原有程序进行修改,便可将原有程序进行整合. 5)可视化编辑,全新的Menu和Tab控件.支持拖拉...

    权限管理权限管理

    权限管理权限管理

    ASP.NET权限管理系统(FrameWork)

    ASP.NET权限管理系统(FrameWork) 1.起源 在我们开发软件过程中,经常会需要开发一个后台管理程序.用于管理我们开发的前台软件. 当你开发的软件越来越多的时候,你的管理后台也会越来越多.这时如果有一个统一的管理...

    PermissionBase权限管理系统

    它包含了一个适用于一般企业应用系统的框架,以及与用户权限管理相关的结构和模块,因此PB可以作为中小型企业应用系统或一般网站系统的实现参考或者项目雏形。 PB包括以下模块:职员登录、模块导航、系统代码管理、...

Global site tag (gtag.js) - Google Analytics