權限體系是用於約束用戶訪問或操做資源的權利,這裏的「資源」能夠指數據,也能夠指特定的功能(如審覈訂單)。一般的權限體系設計是基於角色的訪問控制方式,用戶經過角色與權限進行關聯。做者的實現方式稍微有些不一樣,經過組織結構樹與權限進行關聯,這樣能夠實現子級節點繼承上級節點設置的權限。git
注意:請勿將Admin用戶的Admin權限取消掉,未作判斷會致使無權限。github
注意:系統默認的Admin密碼:760wb,Test密碼:la581緩存
調用服務時,根據會話的組織單元路徑與指定的權限比對,可判斷當前用戶是否具有特定的權限。數據結構
注意:目前未驗證權限的服務全部人都可調用。app
[InvokePermission(Permissions.Admin || Permissions.Developer)] //可組合 public async Task<EntityList<Entities.OrgUnit>> LoadTreeList() { var q = new TableScan<Entities.OrgUnit>(); return await q.ToTreeListAsync(t => t.Childs); }
public async Task SaveOrder(Entities.Order order) { if (!Permissions.SaveOrder) throw new Exception("不具有操做權限"); await EntityStore.SaveAsync(order); }
本篇主要介紹了框架集成的權限體系的實現方式,Github上的運行時已經更新可測試。若是您有問題或Bug報告,請留言或在Github提交Issue。框架