權限管理思路:
1.三張表(公司項目比較複雜,因此數據表遠比這個複雜,這裏只實現權限管理,簡化一下)
action表------權限大菜單;
這個表沒有實際意義,可是能夠簡化前端權限管理的樣式,將同一個controller裏面的具體操做能夠放在一行顯示,字段參考:
id,action_uri,action_name
do表------具體涉及的操做;
將全部要進行權限管理的操做放入此表,將會在前端頁面權限管理裏面分別顯示,字段參考:
id,do_uri,do_name,action_id
privileges表------用戶權限;
系統中存在的每個用戶都有一條對應的記錄,字段參考:
id,user_id,privileges
privileges存儲爲字符串,用*表示高級權限用戶具有全部權限,用@表示普通權限用戶具有除高級權限的全部權限,
用do_uri拼接的字符串表示自定義權限用戶具有字符串中存在的權限。
2.用一個單獨的方法把高級權限放入數組返回;
3.用戶操做請求過來,先獲取用戶相關信息,包括權限表裏面的權限。
與操做來源匹配。
若是獲取到的是*,擁有權限直接下一步具體操做;
若是獲取到的是@,看操做來源是否存在與高級權限數組裏,若是不存在有權限下一步具體操做,若是存在就不具有權限退出;
若是獲取到的是uri字符串,就將字符串轉化爲數組,看操做來源是否存在與數組中,若是存在有權限下一步具體操做,若是存在就不具有權限退出;
4.後臺用戶權限管理就是對user表和do表修改privileges表。前端