马品种登记系统中角色管理模块的研究与实现
2022-12-28赵涛冯向萍赵新苗迪力夏提
赵涛,冯向萍,赵新苗,迪力夏提
(新疆农业大学计算机与信息工程学院,乌鲁木齐 830000)
近年来,新疆马匹数量不断增加,截至2018年底[1],新疆马存栏73万匹,马繁育生产体系不断健全,现有哈萨克马、焉耆马、巴里坤马、柯尔克孜马4个原始品种和伊犁马、伊吾马2个培育品种。这些都为现代马产业发展提供了坚实基础。为充分挖掘马产业增长潜力,提高现代信息化管理马产业发展水平,亟需在新疆推行马品种登记工作[2]。
目前,支撑现代马产业发展的马匹登记工作相对滞后,推进缓慢,登记工作主要依靠传统手工登记方式完成[2]。为了实现马品种登记的电子化和信息共享,需要研发一套系统来对马品种进行登记管理,而角色管理是系统的重要组成部分。根据系统设置的安全规则,使用户只能访问被授权的内容,通过鉴别用户身份,有效防范非法入侵,提高系统的安全策略,减少系统的管理开销。本研究基于Django框架,结合角色的访问控制模型Role-Based Ac⁃cess Control(RBAC),设计并实现了马品种登记系统的角色管理模块。
1 基于角色的访问控制
1996年,美国乔治梅森大学的Sandhu等[3]提出了基于角色的访问控制模型,该模型在用户和权限之间引入了角色的概念,即给每一个用户分配一个适合的角色,每一个角色拥有对应的权限,其模型结构如图1所示。
图1 RBAC模型核心结构
在RBAC模型中,通过角色关联用户、角色关联权限的方式赋予用户权限。对于用户和角色包含了两种关系,一种是多对一,一种是多对多。在马品种登记系统中,由于系统使用人员较少,岗位权限相对清晰且不会出现兼岗的情况,故本系统采用了用户和角色之间的多对一关系,即一个用户只能拥有一个角色,但一个角色可以是多个用户。而角色和权限之间是多对多的关系,即一个角色可以拥有多个权限,同时,一个权限也可以赋给多个角色。
2 马品种登记系统角色管理模块的构建
根据马品种登记信息化建设要求,马品种登记系统建设模块主要包括注册登录、马品种登记、护照管理、审核管理等,各个功能模块都需要设定对应的用户角色,不同用户在不同功能模块下拥有不同的操作权限。
基于新疆维吾尔自治区马业协会(简称马业协会)和新疆维吾尔自治区畜牧总站(简称畜牧总站)对系统的需求,在马品种登记系统中设置相应的业务管理人员和单位管理人员,明确各管理人员的主要职责。目前由于大多数马主的文化水平有限,在录入马匹信息时,不仅在系统操作上有困难,而且不能保证马匹信息的准确性,故通过登记官代劳机制,协会专门指定部分专业人士为登记官,专门为马主服务,录入马匹的相关信息,并进行鉴定。
2.1 系统角色体系架构
马品种登记系统主要针对新疆不同的马品种(哈萨克马、焉耆马、巴里坤马、柯尔克孜马、伊犁马、伊吾马)进行登记,登记时区分幼驹、地方品种马、引进马3种类型。在马匹登记、护照管理、审核管理等环节具备增、删、改、查、导入导出等功能。
该系统预置了管理员、马业协会、畜牧总站角色,其中,管理员权限不可修改,马业协会和畜牧总站角色须在创建用户后,指定对应的系统角色,具备相应的管理功能,如,审核登记官用户申请信息及马匹信息、生成护照等。
系统还设置了马主和登记官的角色,不同的角色都需要审核通过后才可使用本系统,不同的角色拥有不同的权限。马主可以录入马匹信息、申请修改信息和申请生成护照,另外马主又分成不同的会员等级,不同的级别可查看系统中不同数量的马匹信息。登记官主要有3种:协会登记官、地州登记官和县级登记官,登记官都具备录入马匹和审核马主用户的功能;协会登记官拥有对任何马匹的录入权限和任何马主的审核权限;地州登记官拥有对本地州内马匹的录入权限和马主的审核权限;县级登记官拥有对本县市内马匹的录入权限和马主的审核权限。给用户设置操作权限时,需在创建用户后,指定或申请角色,这样,用户就会得到一定的角色,自动赋予角色的操作权限。
马品种登记系统共设立了三级角色用户,三级和二级角色用户的角色申请必须由其上级角色用户审核通过后方可使用。三级角色为马主,二级角色为登记官,登记官又分了协会登记官、地州登记官、县级登记官,一级角色主要是马业协会(登记管理委员会)和畜牧总站。按照系统功能,建立马品种登记系统角色体系架构如图2所示。
图2 马品种登记系统角色体系架构
2.1.1 三级角色(马主)注册账号并完善个人基本信息后,申请角色(马主分不同的会员等级),不同的会员等级可查阅的马匹信息数量不同,缴纳会费不同,申请经二级角色(登记官)审核通过后方可填写并提交《马匹登记申请表》,表格主要登记马匹基本信息、血统信息、类型与理想表现、体尺与体重、外貌体质、工作能力和外貌特征附件等。
2.1.2 二级角色(登记官)登记官主要分3种(协会登记官、地州登记官和县级登记官),其主要职责有3个方面。
1)注册账号,完善个人基本信息,申请角色,待一级角色(登记管理委员会或者畜牧总站)审核通过后方可使用。
2)审核马主(会员与非会员)用户信息及角色,接收马主提交的《马匹登记申请表》,根据马主提供的信息,联系马主准备马匹相关资料;待马主所在县或地州登记马匹数量达50匹后,下现场对马匹进行鉴定(包括植入芯片和血液采集);最后将马匹鉴定中需要的所有信息填写完毕,上传至登记管理委员会和畜牧总站,待其审核。
3)登记官根据地域划分,县级登记官只可查看本县内所有已登记马匹的全部信息,地州登记官可查看本地州内的所有已登记的马匹信息,协会登记官可查看系统内所有马匹信息。
2.1.3 一级角色(登记管理委员会和畜牧总站)登记管理委员会权限是审核二级角色的申请,审核协会登记官提交的所有信息,并拥有删除、修改、查询的权限,最终生成马匹护照,并下载打印。
畜牧总站的权限基本和登记管理委员会一致,惟一不同的是,马匹护照生成只能由登记管理委员会角色完成,畜牧总站不可生成护照,只能下载打印登记委员会生成的护照。
2.2 马品种登记系统角色管理功能的实现
角色的分配与管理是系统的重中之重。此部分主要实现用户管理,对应角色拥有马匹相关信息的增、删、改、查权限。系统的具体角色分配方案落实后,需要在后台数据库端进行设计。本系统基于Postgre开源数据库,搭载Django框架,实现马匹登记系统角色管理。
为了实现角色权限控制,需要1个视图来对用户的权限进行判断。每个用户根据自身角色所对应的权限拥有不同的操作功能,该视图包含用户能看到的页面以及在该页面上具体的操作内容。
马品种登记系统的设计主要采用3层架构,分别是Model、View、Template。MVT模型如图3所示。
图3 MVT模型
1)Model模型负责对数据进行处理,包含对数据库的增、删、改、查操作;在角色管理中主要涉及角色表、权限表和用户表。
2)View视图负责处理用户请求,与前端页面进行数据交互,调用Template,前端操作对后台数据的调用使用Model。
3)Template模板负责显示数据(产生html界面)。
前端主要使用HTML、CSS、Javascript语言进行色痕迹开发,引入BootStrap工具对页面进行优化。前后端交互通过View函数实现,通过JSON对象向前端返回数据,通过JQuery的Ajax函数从前端往回传值。
在用户管理界面中,主要功能如图4、图5、图6、图7所示。
在用户注册、实名认证、登录后,选择相应的角色,如图4所示,由于管理员、登记委员会、畜牧总站是系统预置的角色,在这里不设置选项,只选择马主和不同的登记官角色。选择角色后补充个人信息,如图5所示,提交后经审核通过后不可随意更改,如需更改,联系上级部门退回。
图4 注册登录后选择角色
图5 补充个人信息页面
不同的登记官审核的马主地区范围不同,这里以协会登记官为例(图6),主要有3项功能,分别是审核和收回、组合查询及排序。
1)审核和收回。登记官可点击审核按钮对指定的用户信息进行查看和审核,审核结果分为通过和不通过两种,如审核通过需要退回,可直接点击收回按钮,马主用户即可重新选择角色和提交个人信息。在表格的最后一行显示当前页条数、共审核及未审核条数,便于登记官掌握当前工作进度。
2)组合查询。登记官可输入用户的姓名、手机号、审核人等进行组合查询,查询中可只输入其中一项或者多项进行查询,也可以进行模糊查询,大大提高了登记官查找的效率。
3)排序。登记官审核用户马主信息页面如图6所示。在页面的表头部分,有10个字段,除了操作字段不可排序,其他都可进行升降序排序,表格中的信息默认以申请日期降序排序。
图6 登记官审核用户马主信息页面
在审核用户信息中,登记管理委员会和畜牧总站角色的权限相同,图7以登记管理委员会为例。登记管理委员会和畜牧总站角色主要是对登记官的信息进行审核,与登记官审核马主信息的功能相同,在这里不再赘述。
图7 登记管理委员会审核用户信息页面
3 小结
本文结合马品种登记具体业务需求,通过对系统的理解,形成了独特的马品种登记系统角色管理模块,为更好地管理用户和马匹信息做出安全决策,也为马品种登记系统的顺利开发奠定了基础,同时确保马品种登记系统的进一步顺利研发,提高了工作效率,助力新疆马业信息化工作健康可持续发展。