APP下载

企业标准信息化管理系统权限设计与实现

2018-03-26涂小琴

软件导刊 2018年3期
关键词:角色信息管理系统

摘要:为了在企业标准信息化管理系统中实现办公逐级审核流程,不同工作人员对模块持有不同的操作权限,同时可以灵活改变操作权限,将各模块根据编号进行2n操作,“与运算”、“或运费”以及“异或运算”的方法,灵活进行权限的增删修改操作。运行数据库分析理论,通过分析用户、角色、权限、模块之间的关系,设计出合理的数据库。通过运用以上方法,并结合实际,编程实现角色权限的访问控制。分析了权限的实现原理,从系统开发角度阐述了从权限设计到权限实现的全过程,以灵活控制角色权限。

关键词:权限;角色;信息管理系统

DOIDOI:10.11907/rjdk.172435

中图分类号:TP391

文献标识码:A文章编号文章编号:16727800(2018)003019103

英文摘要Abstract:For the enterprise standard information management system, the office level audit process is implemented,Perform operations on the same or different modules by different staff members,Make it have different operation authority, at the same time can change the operation authority flexibly.Perform 2n operations on each module based on the number,Through the operation method and characteristics of “AND” , “OR”,“XOR” operation,flexible permissions additions and deletions modify the operation.Based on database analysis theory,by analyzing the relationship among users, roles, permissions and modules, a reasonable database is designed.Through the use of the above methods, combined with the actual, programming access control of role permissions.The realization principle of authority is analyzed,From the point of view of system development, this paper introduces the total process from permission design to privilege realization,flexible implementation of the role of permissions control.

英文關键词Key Words:authority; role; management information system

0引言

在企业标准化管理工作中,各级质量技术监督部门担负着非常重要的角色。技术监督机构有很多职能部门,不同的职能部门完成不同的工作,这些工作有:标准制定、标准备案、新企业标准申请、定时对标准实施状况进行检查、标准执行监督,同时还需引进一些同行或其它国家的先进标准等。这些工作在申报过程中需要不同级别的人员进行审核,不同人员负责的工作也会不同,所以需要对用户的角色、使用权限区别对待[1]。

为了实现对企业标准的灵活管理,本文详细梳理了企业标准工作,对系统的角色权限进行了详细设计。设计企业标准信息化管理系统涉及的工作非常多,共分为8个模块,分别是:企业标准制定/修订管理、企业标准管理、企业标准查询与下载、企业信息管理、质量监督部门管理、用户管理、角色权限管理、系统管理。这8个模块中包含新企业标准申请、企业标准修订、企业信息登记与查询、企业标准查询与下载、企业标准上传、部门管理、用户添加、角色权限添加修改等功能[2]。

系统涉及的用户也很多,有企业用户,有质量监督局的办公人员,企业用户需要方便查看业务办理进程,有哪些资料要完善等等,而监督局的办公人员则根据办理的业务不同,需要分配不同的权限,在权限中形成一个完整的办公流程,进行逐级审核。所以在该系统中,权限的设计尤为重要。

1权限设计实现原理

系统用户分为企业用户和政府办公人员两大类。企业用户可以进行企业标准的申请办理,以及查看申请进度等,政府办公人员则可进行更多操作。需根据每个人员的分工不同,得到不同的操作权限,所以需要设计不同的角色以及不同的权限,使不同用户操作的模块或操作的功能不同。同时还需对系统模块、操作权限进行增减。因为模块在不断变动,若在用户权限中设置对模块的访问权,则用户权限也在不断变动,并通过不断增加字段对模块的访问标记进行设置。数据库中不断变化的字段是程序设计员非常头疼的问题,会导致工作量加大。为避免对数据库表中的字段进行增减,也为了避免数据库冗余,能够灵活添加删除系统中的模块,在对模块进行权限操作时,用以下方法快速实现用户的模块操作权限。

根据与运算、或运算的特点可知:

(2 | 4 | 8 | 16)=30

30 & 2 =2

30 & 4=4

30 & 8 =8

30 &16 =16

根据以上原理,对每个模块的序号进行2n(n>=1)操作,并将结果放至模块的字段中。若该模块被选中为用户操作权限范围,则进行int sum=0, sum=sum | 2n的操作,并将结果放入用户权限字段中。在系统读取用户权限时,将sum与每个模块的2n进行逻辑与操作,若2n是sum结果的一个相加项,则与sum进行逻辑与操作后,结果仍为2n,若不为sum结果的相加项,则所得结果为0。从这个过程中, 2n为用户的权限操作模块,这样就解决了在用户权限中对某个模块的访问权限字段设定问题,数据库的设计也更简化。

遵照此原理,進行权限的增加、删除、更新等操作,根据操作序号给不同的操作赋值(2n),如表1所示。

2权限数据库设计

2.1概念结构设计

不同用户、不同角色需要操作不同的模块或不同的功能(如增加、查看、删除等),所以在设计数据库时,要重点分析用户、权限、角色、模块之间的关系。本系统对用户的授权访问可划分为以下几类:

系统用户(User):任何有权限登录系统的使用人员,对该类用户再具体划分;

角色(Role):企业用户或质量监督局工作人员。不同角色有不同的使用权限;

具体操作对象、操作资源(Operator):可以是某个功能模块,也可以是某个具体的添加、删除、修改等操作;

群组(Group):可以继承父类的对应权限等。

对以上4大类进行分析,一个角色可以操作多个模块,一个模块也可以被多个角色所操作。因此,这4大类都具有多对多的关系,关系模型如图1所示。

2.2逻辑结构设计

不同用户、不同角色可以使用的权限不同,需要对权限实现灵活的变动。大部分办公系统存在着对用户、角色、权限的不同需求,本系统重点分析了科室(用户所在部门)、用户、角色、角色权限以及功能模块等几个主要实体,并对这几个实体进一步分析,得到8个数据表, 图2给出了这8个表之间的关系,其中科室表(部门)对应模型图1中的Group,功能模块表以及功能应用表对应模型图1中的Resource。

3角色权限实现

用户注册的角色不同,权限也不同,每个角色的权限中都有对应的Value值,这个Value值就决定了该用户的使用权限。Value值对应系统中不同的管理页面,只有0或1两种。如果Value值对应的是0,代表该用户无操作这个功能的权限,如果是1,代表该用户可以操作这个功能。同时功能应用表中,对最基本的列表、新增、修改、删除4个操作进行了灵活设置。当用户登录系统时,系统检测该用户的角色权限,并判断此页面的Visible是True还是False。若为False,则不显示此页面。实现权限角色管理的类如下:

public partial class RoleManager : System.Web.UI.Page

{

intRoleID = (int)Common.sink("RoleID", MethodType.Get, 255, 0, DataType.Int);

string CMD = (string)Common.sink("CMD", MethodType.Get, 50, 0, DataType.Str);

string CMD_Txt = "查看";

string App_Txt = "角色";

stringAll_Title_Txt = "";

protected void Page_Load(object sender, EventArgs e)

{

FrameWorkPermission.CheckPagePermission(CMD);

BindButton();

if (!Page.IsPostBack)

{

OnStart();

}

}

private void OnStart()

{

if (CMD != "Look")

{

TabOptionItem2.Visible = false;

TabOptionItem3.Visible = false;

}

else {

TabOptionItem3.Visible = false;

intRecordcount=0;

QueryParamqp = new QueryParam();

qp.Where = string.Format("Where A_RoleID = {0}",RoleID);

qp.OrderType = 0;

ArrayListlst = BusinessFacade.sys_RoleApplicationList(qp, out Recordcount);

Repeater1.DataSource = lst;

QueryParam qp1 = new QueryParam();

qp1.OrderType = 0;

ArrayList lst1 = BusinessFacade.sys_ApplicationsList(qp1, out Recordcount);

NewAppID.DataSource = lst1;

NewAppID.DataTextField = "A_AppName";

NewAppID.DataValueField = "ApplicationID";

NewAppID.DataBind();

foreach (sys_RoleApplicationTablevar in lst)

{

ListItem ditem1 = this.NewAppID.Items.FindByValue(var.A_ApplicationID.ToString());

if (ditem1 != null)

NewAppID.Items.Remove(ditem1);

}

ListItem item3 = new ListItem();

item3.Text = "請选择应用";

item3.Value = "";

NewAppID.Items.Insert(0, item3);

}

InputData();

Button1.Attributes.Add("Onclick", "javascript:returncheckForm(aspnetForm);");

Button2.Attributes.Add("Onclick", "javascript:returncheckForm(aspnetForm);");

}}

具体的权限实现如图3所示。

4结语

本系统通过B/S架构实现。在设计用户角色权限时,巧妙运用二进制中的“与运算”、“或运算”、“异或运算”方法,在权限的操作中加入这些运算,灵活实现权限应用的增减操作。这种方式可以使用到其它系统中,重复使用相关代码,为其它系统进行权限设置提供参考。

参考文献参考文献:

[1]涂小琴.面向珠宝检测领域软件体系结构的研究与设计[D].昆明:昆明理工大学,2012.

[2]刘艳华,陈麟珠.标准化信息管理系统的设计与研究[J].成功,2016(9):223224.

[3]王哲.加强石油科研单位标准化工作的探讨[J].石油工业技术监督,2004(1):3940.

[4]张世宏.基于JBPM工作流的电力固定资产管理系统的设计与实现[D].成都:电子科技大学,2007.

[5]朱琳.四川建筑职业技术学院科研管理系统的设计与实现[D].成都:电子科技大学,2012.

[6]丁晓娣.基于.net的民办高校教务管理系统分析设计与实现[D].济南:山东大学,2013.

[7]王海楠.贵州水书数字化展示系统设计与实现[D].成都:电子科技大学,2014.

[8]刘柱.中山市公安案件管理信息系统设计与实现[D].成都:电子科技大学,2013.

[9]郭宇.企业信息管理系统[J].科技资讯,2007(18):229230.

[10]张洪俊.云南省招生计划通用管理系统设计[D].天津:天津大学,2015.

责任编辑(责任编辑:杜能钢)

猜你喜欢

角色信息管理系统
三维可视化信息管理系统在选煤生产中的应用
信息管理系统在工程项目管理的应用
基于三维TGIS的高速公路综合信息管理系统
SaaS模式下的房地产中介公司信息管理系统
高速公路绿色通道信息管理系统开发与实践
普通高等学校思想政治教育辅导员角色问题研究