权限管理模块设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

权限管理模块设计说明书

摘要

权限管理分为两个部分,操作权限管理和资源权限管理。针对我们的系统,分别进行说明。

一、操作权限管理即为允许用户使用那些功能,进行哪些操作。有两个地方需要处理,

1、对用户隐藏没有授权的功能。如“LOG管理”功能没有对用户A授权,则用户A是看不见“LOG

管理”这个功能菜单的。

2、在功能所在的页面进行权限验证,防止没有授权的用户通过输入URL进入功能所在页面。

如“LOG管理”功能没有对用户A授权,则用户A是即使是手动输入“LOG管理”功能所在的页面,他也无法使用这个功能。

在实现方式上可以通过”角色”和”功能”来实现,一个”角色”对应多个”功能”,”用户”与”角色”是多对多的关系。当用户登录时通过 (用户->角色->功能)查询出该用户可以使用的功能列表并显示,无权使用的功能将被隐藏。并且在功能所在页面进行权限验证,避免没有权限的用户通过特殊方法进入页面。

二、资源权限管理的意思是限制用户对资源的访问和操作。

1、省级的用户可以查看和操作全省的数据。但不能查看和操作外省的数据。

2、市级的用户可以查看和操作全市的数据,但不能查看和操作该市以外的数据。

3、全国级的用户可以查看和操作全国的数据。

目录

1概述 (3)

1.1目的 (3)

2模块结构描述 (3)

3模块功能描述 (3)

3.1权限管理 (3)

3.1.1功能菜单管理 (3)

3.1.2用户管理 (4)

3.1.3角色管理 (4)

3.2操作权限验证 (4)

3.2.1登录验证 (5)

3.2.2页面载入验证 (5)

3.2.3页面操作权限验证 (5)

3.3资源权限验证 (6)

4数据库设计ER图 (6)

1概述

1.1目的

权限管理模块是为了对系统权限进行管理和验证。

2模块结构描述

3模块功能描述

3.1权限管理

3.1.1功能菜单管理

系统的每个功能都要对应一个功能菜单,功能菜单管理即是对这些菜单项的增删改查管理。3.1.1.1查询功能菜单

输入:功能名称、功能级别、是否已删除

输出:功能名称,父功能名称,功能代码,功能级别,功能页面名称,是否已删除。

3.1.1.1.1查看详细

输入:功能菜单编号

输出:功能名称,功能描述,功能代码,父功能名称,功能级别,功能页面名称,是否已删除。

3.1.1.2添加功能菜单

输入:功能名称,功能代码,功能描述,父功能编号,功能页面名称。

输出:返回是否添加成功。

3.1.1.3编辑功能菜单

输入:功能名称,功能代码,功能描述,父功能编号,功能页面名称,是否已删除。

输出:返回是否修改成功。

3.1.1.4删除功能菜单

在编辑功能中实现。将”是否已删除”修改为”是”。

3.1.2用户管理

3.1.2.1查询用户

输入:所属角色名称、所属地区名称、登录名、数否已删除。

输出:用户登录名、邮件地址、电话、真实姓名、所属地区名称、是否已删除。

3.1.2.1.1查看详细

输入:用户编号

输出:用户登录名、邮件地址、电话、真实姓名、所属地区名称、是否已删除,所属角色。

3.1.2.2添加用户

输入:登录名、密码、邮件地址、电话、真实姓名、所属地区编号。

输出:返回添加是否成功。

3.1.2.3编辑用户

3.1.2.3.1编辑用户信息

输入:登录名、密码、邮件地址、电话、真实姓名、所属地区编号。

输出:返回是否修改成功。

3.1.2.3.2编辑用户角色信息

在编辑功能中实现。一个用户可拥有多个角色。

3.1.2.4删除用户

在编辑功能中实现,将”是否已删除”修改为”是”。

3.1.3角色管理

3.1.3.1查询角色

输入:

输出:角色名称、父角色、是否已删除。

3.1.3.1.1查看详细

输入:角色编号

输出:角色名称、角色描述、角色等级、是否已删除。

3.1.3.2添加角色

输入:角色名称、角色描述、角色等级。

输出:返回是否添加成功。

3.1.3.3编辑角色

输入:角色名称、角色描述、角色等级、是否已删除。

输出:返回是否修改成功。

3.1.3.4删除角色

在编辑功能中实现,将”是否已删除”修改为”是”。

3.2操作权限验证

将权限相关的逻辑封装到一个类中,以利于复用,如下面的类图所示:

Login函数通过(用户->角色->功能)取出用户所对应的角色列表List<角色>和功能列表List<功能>,然后给给Functions和Roles属性赋值(Roles= List<角色>)(Functions= List<功能>)。

3.2.1登录验证

在用户登录时,调用PermManager.Login,然后从PermManager.Functions属性中取出用户所对应的功能菜单列表List<功能>,将List<功能>中存在的功能对用户显示,不存在的不显示。

代码改动:需要改动登录页面。

3.2.2页面载入验证

在功能所在的页面进行权限验证,防止没有授权的用户通过输入URL进入功能所在页面。

在功能所在页面加载的时候从PermManager.Functions中取出List<功能>,并判断List<功能>中是否存在某项(功能.功能页面名称=当前页面名称),如果存在就说明有权限,反之则没权限,并跳转到首页。但是在所有页面都进行判断的话,会将权限验证逻辑代码扩散到很多页面,造成大量重复的逻辑代码,将来不好维护。解决方式是新建基类页面PageBaseNeedPerm继承自

System.Windows.Controls.page,并将所有功能页面改为继承自PageBaseNeedPerm,然后将权限验证逻辑封装到页面基类中,在基类加载时进行权限验证,这样所有的功能页面就会自动进行权限验证了。

代码改动:需要增加页面基类PageBaseNeedPerm,需要将所有功能页面改为继承PageBaseNeedPerm。

3.2.3页面操作权限验证

具有全部权限的角色可以使用页面中得增删改查全部功能,只具有查看权限的角色则只能查看数

据,不能进行增删改操作。

相关文档
最新文档