使用者權限設計(二),使用者權限設計

來源:互聯網
上載者:User

使用者權限設計(二),使用者權限設計

上一篇文章:使用者權限設計(一)

下面介紹一下許可權的更新和驗證

@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個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.