做了几年的应用系统项目开发,大部分时间都在工作中忙碌,项目文档、系统设计、编码等工作都常常围绕不同的项目在实施,逐步的总结了一部分自己的资源。这里主要是对软件系统开发中的常涉及到的内容进行总结和提炼,对于每个项目而言,最能复用的部分主要为3个内容:1、数据库基础操作类;2、系统公共方法类;3、系统基础平台用户权限。本次重点对系统基础平台用户权限做一个描述,以整理以往的思路,并希望固定下一个基础的设计,并通过最近学习的MVC来实现该部分。

     概述

     用户权限作为应用系统基础的内容,设计到整个系统的访问、操作控制的基础。该部分由如下几个方面构成:单位部门信息、用户信息、角色权限信息、用户特殊权限信息、系统操作信息、系统功能节点、系统负责信息。我们在主要涉及到这几个对象:单位或部门、用户、角色及权限操作、系统功能节点、授权行为,除此之外将系统所需的异常和日志也加入在此。我们这里关注:用户属于那些部门、拥有那些角色、拥有那些特殊权限;角色拥有那些功能节点及操作类型;功能节点有那些操作类型。模块操作权限如何实现、数据范围权限如何实现、功能操作权限如何实现。形成这样一系列逻辑:用户属于那些部门,拥有多少角色,组合功能访问权限、生成模块操作权限,以及授权的过程实现。

     部门

     部门的设置主要为系统的数据范围权限设计的,本次的设计默认为用户能管辖的数据为本部门的数据,能浏览下属的数据;如需要系统能让用户浏览其他部门的数据,则需要单独建表对数据范围权限进行记录。在部门信息里主要包括2个部分信息,本部门及父部门信息、区域信息。很多软件信息系统都存在区域管理方式,这里系统可根据配置来确定采用那种数据范围过滤方式。数据范围主要包括4种:全局、本部门、下属部门、自己建立。全局由默认约定来确定,本部门及下属部门由单位部门信息确定,这里自己建立我们不处理,在大多数业务数据在一个部门内部是通用的,如果需要对数据范围的约定到用户级,则需要扩展部门职务信息使其确定数据范围,这里不做考虑。

     用户

     用户的设计也分为登录信息表和附加信息表,系统平台围绕登录表设计,附加信息表扩展每个系统不同用户信息要求。这里有个约定,用户权限及操作包括2个部分:1、用户拥有的角色权限集合的组合;2、用户的特殊权限信息。约定优先用户特殊权限,然后组合角色权限,主要运用于临时用户或特殊权限。

     用户信息主要包括部门信息、用户id、姓名、密码、创建时间,其余用户详细信息均在附加信息表中,用户拥有的角色信息单独用表确定。

     角色

     角色的设计主要是基于不同应用的用户组,他包含一组系统节点功能组合及操作动作。操作动作中约定有一个默认为全部操作的分类,一般系统均采用该分类而不去访问操作集合表,有需要操作控制的时候才去检索操作集合信息。

     角色主要包括角色信息表描述角色,角色权限表记录角色拥有的权限。

     权限

     权限主要包括了功能模块权限和模块操作权限。

     操作

     模块操作权限主要基于2个部分:操作类型表,其中包括:全部、新增、修改、删除、浏览、审核、上报;操作集合表:动态将可能的操作组合形成一个组合,使其权限关联组合键。

     功能节点

     功能节点的设计主要为系统的菜单设计,除包括基本节点信息外,加入一个节点操作范围,在设计节点时确定该节点拥有的操作。

     功能节点主要包括以下几个内容:节点名称、节点页面、参数、是否显示、说明等相关信息

     授权功能

     授权的设计主要包括用户权限的设置,分为拥有权限、没有权限2个状态,没有权限即为拒绝访问。

     总结

     本次设计为一个通用的用户权限管理功能的数据结构部分,仅仅为整个系统用户权限管理的一部分,其后将对程序设计、功能操作设计进行详细说明,之后依据该部分需求尝试用MVC完成实现。

posted on 2008-11-30 20:08  邵波  阅读(884)  评论(0)    收藏  举报