碧波液压网 欢迎你,游客。 登录 注册

ORM构架下的权限管理系统研究与实现

版权信息:站内文章仅供学习与参考,如触及到您的版权信息,请与本站联系。

  0.引言

  关于权限系统的设计,从信息系统诞生之初就被广泛关注,也已经存在很多成熟的模型,本文中所采用的基于角色的权限模型[1]就是其中的一种。但以往权限系统的设计很多时候并没有顾及开发上的便利性。 随着 ORM[2]框架的广泛应用,数据库的访问得以大幅度简化,目前新开发的信息管理系统基本上都引入了 ORM 框架。 这为权限系统的开发提供了新的机遇和挑战。本文将介绍 ORM 框架下的权限系统,特别考虑了和其它模块的集成问题。

  1.设计

  1.1 系统结构

  权限管理系统分为底层的数据访问、中层的业务逻辑和上层的权限管理三个层次模块,其中中层的业务逻辑划分为权限判定、权限设置和口令三部分。上层的权限管理部分调用权限判定、权限设置和口令三个模块实现权限管理的相关功能,而功能模块只与权限判定部分交互,使用权限判定模块的方法判断用户是否具有当前操作的权限。

  1.2 功能需求

  从权限的动能角度讲,其需要可以归为以下几点:

  1.2.1 用户是基于角色的。 每个用户属于,且仅属于一个角色。

  1.2.2 系统中存在至少一个超级用户,且该用户具有所有权限。 只有超级用户具有用户管理权限。

  1.2.3 超级用户可以仅仅针对某一个人定义权限。

  1.2.4 对于权限的判断,有以下两种基本形式,其它形式是这两种形式的演化:

  1.2.4.1 不含参权限。 例如用户是否具有添加用户、管理文章分类的权限等。

  1.2.4.2 含参权限。 例如用户是否具有某一个类别的项目的管理权限,这里某一个类别即为参数。

  1.3 类设计

  从 ORM 设计的方式上讲,首先要考虑的是 O(Object),即业务逻辑层的设计。 权限系统的核心类包括 User 类、UserRole 类、Power 类、HasNoPowerException 类和 PowerItem、UserRoleType 两个枚举。

  UserRoleType 枚举表示系统中的用户角色类型, 例如管理员 、专家和企 业 用 户 。 UserRole 类 表 示 用 户角色,其最主要的方法是HasPower 方法,用于判断该用户角色是否具有某一项权限。

  User 类表示用户,其中的 HasPower 方法与 UserRole 中的类似,用户判断该用户是否具有某一项权限。 User 含有对 UserRole 的引用,表示用户属于哪个角色。

  UserRole 和 User 都拥有一个权限 Power, 即拥有一个 Power 的引用。 Power 真正处理权限的判断,UserRole 和 User 的 HasPower 方法最终委托给 Power 的 HasPower 方法。

  PowerItem 枚举描述的是系统中的权限项目。 该枚举是定值枚举,即每定义一个枚举项,则其对应的值即被永久占用。 及时该枚举项被删除,其对应的值则永久失效,不能被新定义的新枚举项所使用。这种方式是为了保证在枚举项目发生改变时,数据库中的现有数据对应正确的枚举项。

你没有登陆,无法阅读全文内容

您需要 登录 才可以查看,没有帐号? 立即注册

标签:
点赞   收藏

相关文章

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。

用户名: 验证码:

最新评论