ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 【自然框架】之通用权限(一):简介、数据结构

【自然框架】之通用权限(一):简介、数据结构

原创 Linux操作系统 作者:iDotNetSpace 时间:2009-07-28 11:14:13 0 删除 编辑

简介

(以下都是我的个人理解,不一定正确。如果有误请多多指正。)


1、何谓权限

      我说一下我的理解,权限从字面上看就是“权力的限制”。在软件里面,权力是什么呢?就是一种操作、一个功能点。那么在软件里面权限就可以理解为“对操作(功能)的限制”,说白了就是某人能不能做某件事情、某个操作。

 

2、何谓角色

      角色是权限的集合,一个角色可以拥有若干的权限,一个人拥有了这个角色,那么就拥有了这个角色所拥有的权限。就是方便设置权限的一种产物。


3、何谓用户组

      这个应该来自于windows操作系统吧,windows操作系统里面有用户和用户组,给一个用户组设定好权限后,用户组里面的用户就具有了用户组的权限。我觉得应该和角色是一个意思。所以我的通用权限里面只有角色,而没有用户组。

 

4、如何来通用?

      我所说的“通用”,就是不写死在代码里面,需求有变化的时候,尽量不用修改代码就可以让客户满意。我的思路就是把权限和代码分离开来,写程序的时候不用关心权限的事情,只要“切成小片”就可以了。而设置角色的时候也不用考虑程序具体是什么样子的,或者说不会由于程序不适合而需要再去改程序。


5、权限不仅是操作,还有资源

      前面说了,权限是对某个操作的限制,如果只有操作那就好办了,但是问题是除了操作之外还有资源。比如CMS里面的客户信息,业务员只能修改自己添加的客户,不能修改和查看其他人添加的客户信息;而业务一部经理可以查看业务一部的客户信息,不能查看其他业务部的客户信息;业务部的总经理可以查看全部的客户信息。业务员的可以根据UserID来过滤,而经理级别的就要用部门ID来过滤了。这就比较麻烦,如何才能把资源的权限给抽象出来呢?这个好像就不太容易了,而且这个还不是最麻烦的,更麻烦一点的是,比如张经理是业务一部的经理,但是他不仅可以查看业务一部的客户信息,而且还可以查看业务二部的客户信息,为什么呢?因为他还兼任业务二部的经理(当然还可以是其他原因)。更复杂的情况相信还有很多。


      另外我刚才说的只是资源权限的一小部分,而我经历的项目不多,而且也不是很复杂,所以这方面积累的经验还远远不够,经验不够就不好抽象了。本来想去某人那里去学习点经验的,但是某种原因不想去了。所以嘛,在这里借此机会,向大家发个请求:如果您遇到了资源权限方面的需求,还请您把客户的需求告诉我,我好积累更多的经验(已知条件),好把资源权限做得更好,谢谢大家了。当然了,我想出来的办法都会写到我的blog里面的。

 

实现思路和数据库设计

      因为我是老脑筋了,面向数据库的,所以最先想到的就是如何来设计数据库,所以下面就说一下思路和数据库。

    权限涉及到的部分人员组织机构项目描述角色。其中角色是权限自己的,而人员、组织机构、项目描述则是相关联的部分。

    “项目描述”是什么? 

    您可能会对项目描述比较陌生,这是什么东东?这个对于我来说是非常重要的,如果没有这个项目描述,我是做不到“通用”的。(注意:我是说我不用项目描述做不到通用,并不是说其他人也都做不到。)

    我是喜欢使用数据库的,所以这个权限我也用数据库的形式来体现了。先画一个图来看看上面四个部分的关系。

 

下面是四个部分里面的表的关系。

【人员】 

 

【角色】 

 

 

【组织机构】 

 

 

【项目描述】  

 

 

      这一章就这样结束了,没有什么具体的东东,希望没有倒大家的胃口。下一章就会介绍详细详细介绍这几个数据库,包括思路、用意和用法。争取在一周内把权限都写完。您的留言就是我的动力,谢谢!

原文地址:http://jyk.cnblogs.com/jyk/archive/2009/06/05/1497109.html

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12639172/viewspace-610610/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-01-04

  • 博文量
    2376
  • 访问量
    5297296