最近抽空寫了小項目通用框架,這里要談的是系統權限這塊。
權限模塊表結構設計如下:
t_sys_menu (菜單表)
t_sys_menu_power(菜單權限表,每個菜單頁面有多個功能權限,如:增、刪、改、查)
t_sys_role (角色表)
t_sys_role_power(角色權限關系表,多對多關系)
t_sys_user (用戶表)
t_sys_user_role(用戶角色關系表,多對多關系)
t_sys_user_power(用戶權限關系表,用戶特有權限,多對多關系)
t_sys_department(部門表)
關系圖我就不畫了,不擅長,說下我的思路就行了:
1.菜單是級聯結構,細化到頁面(bs結構),每個菜單有多個功能權限。
2.角色與角色之間是平等關系,也就是沒有關系。每個角色擁有特有的菜單權限。
3.部門也是級聯結構,部門在這里與菜單權限沒有關系,只與用戶能查看的數據有關系,比如分公司管理員只能管理自己分公司的用戶和數據。
4.用戶可以擁有多個角色,用戶擁有角色決定他的菜單權限,用戶也可以擁有特有權限(權限可直接分配給用戶)。
那么,問題來了:
某用戶給其他用戶或角色配置權限的時候,肯定是只能配置自己已經擁有的權限,這是自然的,已實現。
可是,當他新增或修改一個用戶時,給那個用戶配了自己都沒有的角色,那權限不是越配越大了?
然后我想,讓他給用戶配角色也只能是自己擁有的不就行啦。仔細一想好像不科學啊。
那,這就是問題咯,各位大神有什么辦法,求指教啊!!!
界面是這樣的:
(用戶角色管理-權限配置)
(用戶管理)
(用戶管理-用戶權限配置)
(部門管理)
(菜單管理,這個頁面是給自己用,方便開發)