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


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

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

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

    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.
  • 相关阅读:
    判断一个数是否为素数的方法
    什么是算法?
    table 表格
    状态模式
    设计模式
    观察者模式
    async函数
    JS单线程和异步
    ES6 --- Promise
    浅析flex 布局
  • 原文地址:https://www.cnblogs.com/Tpf386/p/11776956.html
Copyright © 2020-2023  润新知