首页 > 代码库 > 用户权限设计(二)
用户权限设计(二)
上一篇文章:用户权限设计(一)
下面介绍一下权限的更新和验证
@RequestMapping("authDemoSubmit") public String authDemoSubmit(@ModelAttribute("vm") UserAuth mUserAuth) { Map<String, List<String>> authMap = mUserAuth.getUserAuthMap(); Iterator<Map.Entry<String, List<String>>> iterator = authMap.entrySet().iterator(); while(iterator.hasNext( )) { Map.Entry<String, List<String>> entry =iterator.next( ); String objId = entry.getKey( );// 获得对象id String authOperate = list2string(entry.getValue());//获得操作权限 AuthAcc mAuthAcc = testService.getAuthAccByUserIdObjId("004", objId);//根据用户id和对象id获取权限表对象 if(mAuthAcc == null){ // 如果权限为空,则插入一条数据 mAuthAcc = new AuthAcc(); mAuthAcc.setUserId("004");//用户id mAuthAcc.setObjId(objId);//对象id mAuthAcc.setAuthOperate(authOperate);//操作权限 testService.saveAuthAcc(mAuthAcc); }else{ //如果权限不为空,则更新权限 mAuthAcc.setAuthOperate(authOperate);//操作权限 testService.updateAuthAcc(mAuthAcc); } } return "redirect:authDemo.html"; }
因为从画面返回的权限是一个list,所以要把这个list转换成string,增加了个方法
private String list2string(List<String> lst){ StringBuffer str = new StringBuffer(); for(String s:lst){ str = str.append(s); } return str.toString(); }
接下来是权限的验证:
@RequestMapping("authDemoRequest") public String authDemoRequest() { String requestOperate = "u";//假设请求的操作是更新操作,这个参数可以从前台页面传入 //在请求某个对象功能的时候可以如下进行权限验证 AuthAcc mAuthAcc = testService.getAuthAccByUserIdObjId("004", "001");//根据用户id和对象id获取权限表对象 if(mAuthAcc == null){ //没有权限,返回前画面 return "front"; }else{ String authOperate = mAuthAcc.getAuthOperate();//获取用户对应的权限 if(authOperate.contains(requestOperate)){ //如果包含权限,则跳转到下个画面 return "next"; }else{ //没有权限,返回前画面 return "front"; } } }
用户权限设计(二)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。