權限設計實現(MVC4+Bootstrap+ PetaPoco+Spring.Net)


權限設計實現(MVC4+Bootstrap+ PetaPoco+Spring.Net)

一、前言

至畢業后一直在做企業Web開發,做過的項目也有不少,每個項目的框架設計都不是一樣,但是每個項目的權限模塊都是我做的,這樣慢慢以來,就形成自己的一套權限開發框架,並成功的在自己做過的幾個外包項目中使用,反應較為不錯,尤其是BootStrap的頁面風格深受客戶喜歡。

二、框架設計

下面就開始看圖說話環節:

架構設計

詳細解決方案

01_Murphy.Web:表現層,采用了區域方式實現了各個模塊的分離                         

02_Murphy.Business:業務邏輯層

03_Murphy.Core:框架核心層,主要是一些緩存處理,參數處理,日志處理等。

04_Murphy.Data.SQLServer:數據訪問層

05_Murphy.DbUtility:數據庫操作類,引入PetaPoco並做了少量的修改以適應 

06_Murphy.Entity:實體層

07_Murphy.IData:數據訪問接口層

08_Murphy.Utils:工具類,里面包含了很多東西如文檔處理、加密解密、分頁處理、驗證碼等等

技術選型

01_ASP.NET MVC 4.0作為頁面服務

02_PetaPoco輕量級ORM框架用於數據持久化

03_BootStrap 做為頁面展示,做了大量定制,完美支持IE8,這也是深受客戶喜愛的原因

04_artDialog 作為彈出層插件

05_zTree 作為樹插件

06_My97DatePicker 作為日期插件

07_Noty 作為信息提示插件

08_TreeGrid 作為樹表格插件

09_Log4Net 作為日志組件

10_Json.NET 作為序列化組件 

11_ Highcharts作為圖形化報表插件

三、需求分析

首先我們需要理解到底什么是權限,以及如何在項目中運用權限,在這里我根據自己的理解描述下,希望各位輕拍。

1、權限性質

權限系統的應用者應該有三種不同性質的使用

    1.使用權限  

    2.分配權限  

    3.授權權限

前兩個都比較好理解,在這里我重點解釋下授權權限是什么。例如目前給公司做的一套銷售管理系統,是面向全國加盟商的,每個加盟商都有自己的用戶,在系統中由各個地方的加盟商管理員創建編輯凍結用戶,並給用戶分配角色授權等。總部人員不用直接管理,但是加盟商管理員的權限是由總部人員授予的。講再俗一些,就是委托別人來管理、可以授權給別人來管理某個業務。

2、權限資源

權限資源一般情況下分為四類。

  1.操作權限  部門經理能夠審批、而員工不可以

  2.字段權限  部門經理能夠看到本部門下所有員工的崗位值,而員工只能看到自己的崗位值

  3.模塊權限  經理和員工登陸系統后擁有的功能模塊是不一樣的 

  4.數據權限  部門經理可以看到本部門下所有員工的工作計划,而員工只能看到自己的工作計划

3、功能列表

現在網上很多的權限系統都基於角色訪問控制,基於用戶控制的很少,但是在很多情況下基於用戶授權是很方便的,本系統不僅支持角色授權,還支持用戶授權。首先我們要明確我們要去實現哪些東西。

  1.操作權限項

  2.功能模塊

  3.崗位管理

  4.角色管理

  5.組織機構

  6.用戶管理

  7.數據字典

  8.系統參數

  9.日志管理

       9.1 登陸日志

     9.2 操作日志

     9.3 系統日志

  10.代碼生成

       10.1 命名空間

     10.2 類庫命名

     10.3 保存目錄

四、設計實現

1、表設計

這里重點說下關於權限的存儲, 其實不必想得那么復雜,看透了,也是很簡單的事情,就是 “什么主體在什么領域有什么權限?”把這個邏輯關系想清楚了就可以了,你這樣設計了,擴展了系統靈活性,將來也容易維護一些。自己的權限系統是按“什么主體在什么領域有什么權限?”的設計思想開發的。

什么是主體:在系統里確定各種對象的唯一性,一個是對象的類別,一個是對象的主鍵,就像是系統中的用戶(主鍵)

什么是領域:其實就是一種資源,需要一個主鍵來識別資源的唯一性,領域可以是個頁面,也可以是個頁面上的按鈕

什么是權限:權限可以是“可見”,可以是“只讀”,也可以是“可用”

2、頁面設計

不多說了,先上圖吧。整個系統是基於BootStrap定制開發的,頁面效果還行。

首頁展示

功能1:操作權限項

操作權限項分為兩類:操作按鈕權限、字段訪問權限。

1.列表頁

2.表單頁

功能2:功能模塊

1.列表頁

2.表單頁

功能3:角色管理

1.列表頁

2.角色分配權限

2.1功能模塊

2.2 操作按鈕

2.3 數據權限

2.4 字段權限

功能4:崗位管理

1.列表頁

2.表單頁

功能5:組織機構

1.列表頁

2.分配角色

功能6:用戶管理

1.列表頁

2.表單頁

3.分配角色

4.用戶授權

4.1 功能模塊

4.2 操作按鈕

4.3 數據權限

4.4 字段權限

功能7:數據字典

1.列表頁

2.表單頁

3.管理字典類別

功能8:系統參數

功能9:緩存設置

選擇要更新的用戶

功能10:登陸日志

功能11:操作日志

操作日志明細

功能12:系統日志

查看系統日志

功能13:代碼生成

1.命名空間

2.類庫命名

3.保存目錄

4.代碼生成

 

如果大家感興趣,就在右下角幫我【推薦】一下吧,在這里謝謝大家了。我接下來就按照模塊列表一篇一篇的來寫。最后我創建了一個技術交流群:263169088,歡迎大家來交流。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM