- 數據庫表設計:
- 后台的登錄時序圖:
- 詳細講解設計:假定,用戶(op)為zhangsan ,id是1,角色是:200. 那么以下的情況:
a) 權限文件
i.當 添加/修改 用戶權限時,會修改對應權限文件,該文件以用戶id(op_id)為名 1.php,存放在指定的權限文件夾下
ii.刪除用戶時,會把對應的權限文件刪除
iii.驗證權限時,會把該權限文件引入,在根據當前訪問連接地址,比如:http://www.xxx.com/user/op.php?act=del ,會獲取/user/op.php這部分的page_url,來獲取menu表中與之對應的id,而act=del則表示他的權限,【根據權限文件中存放的是:menu_id=>權限】這樣的格式,就可以對比出,用戶是否有權限訪問。當然,如果權限文件中連這個menu_id都沒有的話,肯定是沒有權限的。
b)菜單文件
i.跟權限文件一樣,也是在用戶添加權限后,就會把它對應的權限的菜單,生成一個以id為名的html文件.(1.html)
ii.用戶刪除后,對應的1.html文件刪除.
iii.登錄成功后,后台的右側菜單,就導入該文件,渲染一下即可。
iv.菜單分為:固定菜單[配置文件,針對角色高的用戶擁有] 和 可分配的菜單[存放在數據庫],不同的角色,菜單不一樣,如果是普通的角色,那么肯定沒有固定菜單的權限。
c)操作員角色(op_role) 包括:1 = 操作員,200 = 運維操作員,254 = 超級管理員,255 = 系統管理員
i.這里所用到的角色不是用來控制權限。而只是控制后台的菜單,假如用戶(op) A角色是255,那么會有在判斷用戶權限時,就會顯示出該角色對應的固定菜單,比如:用戶的管理,菜單的管理,不會因為刪除了所有菜單而導致無法使用的情況!
d)驗證流程:
i. 菜單載入流程
ii. 權限的判斷:
權限的運算:http://www.cnblogs.com/toby/archive/2011/10/23/2221863.html