我所理解的許可權

來源:互聯網
上載者:User

一直想找個時間自己寫個DEMO,因為看了不少這方面的資料,大致思路都應該清楚了,想自己動手寫寫應該更容易理解,同時也能找出自己那裡還沒有理解透徹,所以禮拜六、天就動手寫了個DEMO。

 

第一步:定義系統許可權。

第二步:添加導覽功能表

在添加導航的時候,同時需要選擇該菜單所擁有的許可權。

這裡的所屬許可權,用一個欄位儲存,後面給角色賦值許可權展示列表的時候,用來比對是否顯示。

第三步:新增角色,給角色賦值相應的許可權,還可以直接關聯到使用者(使用者管理就不介紹了)。

設定許可權

這裡每個菜單所對應的許可權是通過第二步中,新增導覽功能表的時候儲存到資料庫的。

這裡顯示的時候:擷取許可權列表跟導航表中的資料比對一下,有就現實無則不現實,這樣就可以動態控制每個導航的許可權了。

 

 

我把自己大致的思路描述下,還望各位指正。

資料庫設計:使用者表、使用者角色表、角色表、角色許可權表、許可權表(很傳統的許可權設計)。

1、把系統中會涉及到的所有功能許可權,全部存到“許可權表”並且用一個代碼標識。

2、例舉出系統中全部的功能菜單,同時也需要用一個代碼來標識這個菜單。具體許可權為“菜單代碼—許可權代碼”(當然這是我自己這樣設計的,也許不得當,但是我自己是這樣理解滴)。

當然這裡還要標識這個菜單擁有哪些許可權,譬如:增加、刪除等等,預設許可權為增、刪、改、差。這裡的“Lauthority”欄位儲存的是許可權拼接的字串,用逗號隔開

 

 

 

 

 

 

 

3、功能與角色的關聯。

建立角色表,添加角色(這裡不做介紹);然後是“設定許可權”,選擇使用權限設定頁面上面有圖,很簡單新增的時候判斷頁面哪些複選框勾選了,把勾選的值拼接起來,然後和角色ID一起存入“角色許可權表”(我直接把已經拼接好的許可權儲存到checkbox的value中,儲存到資料庫的時候直接判斷頁面上的checkbox是否選擇,然後拼接直接儲存資料庫)。

 

4、給使用者賦值角色。

建立好使用者資訊,然後用checkbox來展示角色,同理在checkbox的value中存入角色的ID值。然後把使用者ID和角色ID同時存入“使用者角色表”

這裡的對應關係是一對多的關係即一個使用者可以同時擁有多個角色(同理一個角色同時可以擁有多個許可權)。

5、使用。

登入的時候,可以擷取到使用者ID,通過使用者ID可以找到使用者所屬的許可權,然後找出許可權所擁有的功能,動態拼接成字串。

 在進行操作的時候進行判斷是否擁有該許可權。

頁面判斷。

 

至此,我自己所理解的許可權管理就做出來了。以前都是個人意見,各位如果有好的想法或者發現錯誤,還望指正。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.