根據用戶角色,控制用戶可見列表字段和導出列,整個系統都需要,方案該咋設計啊?
用戶表掛角色表,角色表掛菜單表,菜單表掛字段表
---用戶表--------------------------
user_id | user_name
1 | user1
2 | user2
---菜單表----------------------------
menu_id | menu_name |menu_type
1 | 訂單列表 | page
2 | 訂單導出 | btn
3 | 訂單刪除 | btn
----菜單字段表---------------------------------------------------------------
field_id | menu_id | menu_fields |menu_field_type | remark
1 | 1 | x1,x2,x3,x4 | listview | 列表展示
2 | 1 | y1,y2,y3,y4 | excelexport | excel導出
---角色菜單字段表--------------------------------------------------------------------
role_id | menu_id| role_menu_fields
1 | 1 | x1,x2,x3
2 | 1 | x2,x3,x4
3 | 1 | x1,x3,x4
----------------------------------------------------------------
role_id | menu_id | role_menu_fields |
1 | 1 | x1,x2,x3 |
2 | 1 | x2,x3,x4 |
3 | 1 | x1,x3,x4 |
==================================================================
另一種實現思路是對權限進行擴充
原始是:列表查看;
擴展后:列表查看1,列表查看2,列表查看3,列表查看4
原始是:訂單導出;
擴展后:訂單導出1,訂單導出2,訂單導出3,訂單導出4
根據不同的權限,選擇使用不同的提前寫好的sql字段;
這種方式沒有第一種靈活,但是比第一種要省事,開發難度也要低很多;
====================================================================
系統中的權限可以固定嗎?固定了有哪些不好?
固定:提前設計成:增,刪,改,查,導入,導出,排序,發郵件,發短信,授權,撤銷,審核,發消息,移動,打印,系統設置權限(一般控制系統級按鈕),擴展1,擴展2,擴展3,擴展4,擴展5,擴展6,擴展7,擴展8,擴展9,擴展10;
代碼中使用枚舉,依次判斷用戶是否有具體的權限;如果有導出,則顯示導出按鈕權限?
不好的地方是,擴展權限的名字和具體的業務對應會比較麻煩,比如使用擴展1控制了什么權限,大家都不知道。
使用不固定的權限,添加權限時,設置權限Code,比如:add del,update,view,improt,export,shortby,sendemail;
但是擴展部分就必須得和菜單添加配置協商對應了。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
想了一個方法,仍然使用第一種方式,將權限提前固定好,但是允許用戶修改擴展權限的備注內容,將用戶的修改保存起來,用來記錄當前權限用來干啥了。
比如每添加一個菜單,就加載所有提前定義好的權限,允許用戶修改擴展權限,的備注內容,但是不允許修改menu_code,和菜單名字。
每個菜單都對應生成所有權限,但是只有將權限設置成啟用才會生效。

Fixed: advance designed to: add, delete, change, search, import, export, sorting mail, send text messages, authorization, revocation, audit, messaging, mobile, print, set permissions system (general control system level button), an extension, the extension 2, extension 3, 4 extension, extension 5, 6 extended, extension 7, 8 extend, extended 9, extension 10;
Use the code to enumerate, in order to determine whether the user has specific rights; if there are export rights to export button is displayed?
A bad place to be, extended right name and specific business correspondence would be more trouble, such as the use of extended control what authority, I do not know.
Use authority is not fixed, when adding permissions set permissions Code, for example: add del, update, view, improt, export, shortby, sendemail;
But the extension would have to add menus and configuration negotiation correspond.