权限设计——控制显示字段——设计思考

根据用户角色,控制用户可见列表字段和导出列,整个系统都需要,方案该咋设计啊?

用户表挂角色表,角色表挂菜单表,菜单表挂字段表

---用户表--------------------------

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,和菜单名字。

每个菜单都对应生成所有权限,但是只有将权限设置成启用才会生效。

系统中的权限可以固定吗?固定了有哪些不好? 固定:提前设计成:增,删,改,查,导入,导出,排序,发邮件,发短信,授权,撤销,审核,发消息,移动,打印,系统设置权限(一般控制系统级按钮),扩展1,扩展2,扩展3,扩展4,扩展5,扩展6,扩展7,扩展8,扩展9,扩展10; 代码中使用枚举,依次判断用户是否有具体的权限;如果有导出,则显示导出按钮权限? 不好的地方是,扩展权限的名字和具体的业务对应会比较麻烦,比如使用扩展1控制了什么权限,大家都不知道。   使用不固定的权限,添加权限时,设置权限Code,比如:add del,update,view,improt,export,shortby,sendemail; 但是扩展部分就必须得和菜单添加配置协商对应了。
[Xìtǒng zhōng de quánxiàn kěyǐ gùdìng ma? Gùdìngle yǒu nǎxiē bù hǎo? Gùdìng: Tíqián shèjì chéng: Zēng, shān, gǎi, chá, dǎorù, dǎochū, páixù, fā yóujiàn, fā duǎnxìn, shòuquán, chèxiāo, shěnhé, fā xiāoxī, yídòng, dǎyìn, xìtǒng shèzhì quánxiàn (yībān kòngzhì xìtǒng jí ànniǔ), kuòzhǎn 1, kuòzhǎn 2, kuòzhǎn 3, kuòzhǎn 4, kuòzhǎn 5, kuòzhǎn 6, kuòzhǎn 7, kuòzhǎn 8, kuòzhǎn 9, kuòzhǎn 10; dàimǎ zhōng shǐyòng méi jǔ, yīcì pànduàn yònghù shìfǒu yǒu jùtǐ de quánxiàn; rúguǒ yǒu dǎochū, zé xiǎnshì dǎochū ànniǔ quánxiàn? Bù hǎo dì dìfāng shì, kuòzhǎn quánxiàn de míngzì hé jùtǐ de yèwù duìyìng huì bǐjiào máfan, bǐrú shǐyòng kuòzhǎn 1 kòngzhìle shénme quánxiàn, dàjiā dōu bù zhīdào. Shǐyòng bù gùdìng de quánxiàn, tiānjiā quánxiàn shí, shèzhì quánxiàn Code, bǐrú:Add del,update,view,improt,export,shortby,sendemail; dànshì kuòzhǎn bùfèn jiù bìxū dé huo càidān tiānjiā pèizhì xiéshāng duìyìngle.]
Permission system can be fixed it? What fixed the bad?

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.
原文地址:https://www.cnblogs.com/Tpf386/p/11776956.html