开发工具与关键技术:Java、myEclipse
作者:吴晓佩
撰写时间:2019年07月16日
在新增操作用户的时候,一般都需要给用户设置操作权限。如下是我在一个实训项目中实现权限设置的方法与步骤。
我的思路简述:在新增用户的时候,每个用户都新增所有的模块权限,由一个布尔值字段来判断该用户是否拥有该权限,然后再查询该用户对应的布尔值为true的权限字段,然后判断返回的字符串中是否存在与模块对应的字符串,如果存在则该用户具有该权限,如果不存在则该用户不具备该权限,然后拦截用户进入没有相应字段的模块页面并给出相应的提示,如(您没有操作某某模块的权限!)。
我的数据库设置如下:
权限明细表(PW_PowerMingXi)表,PowerXiangQingID(对应的权限名称ID),Staff ID(用户ID),QRF(是否存在权限)。
权限详情表(PW_PowerXiangQing)该表存放所有的模块权限字段。
如下是比较简单的新增用户跟权限的页面,这里就不详细分析了。
Js代码如下:当用户登录成功时发送请求到servlet查询权限的信息。
Servlet中的代码如下:(查询用户QXF为true的PowerXiangQing字段,查询中的数据保存到session中)。
Str输出的字段为 (实时房态,房台预定,开台登记 ,开台消费,客户关系,系统设置,权限设置,操作日志,)加“,”号分隔可以防止前后两个字符串重组成为模块中的字段减少冲突,如(“房台预定”与“开台登记”)两个字符串没有分隔符隔开,而模块中却存在预定开台字段,则会产生漏洞。
页面js的代码:
1、获取Session中的数据
2、判断PowerList中是否存在给出的相应模块字段,(PowerList.indexOf(‘开台登记’))>-1为true,则存在则进入相应页面,不存在则给出应的提示,并阻拦用户进入该页面。
注:indexOf(String str):返回指定子字符串在此字符串中第一次出现处的索引,(括号里的字符串(开台登记)要是字符串(PowerList)中存在并且相同的,有间隙也不算是相同的字符串)。
如下就是没有相关权限操作的效果图。
根据以上步骤来走,一个简单的权限的操作就基本上完成了。