功能模块 |
按钮 |
数据行权限 |
行数据来源于某个个体 如分公司,省份,学校,班级 |
如果需求是上级要所有权限;必须是个体的上级,默认勾选“是否包含所有权限”,数据库里字段值为1即可;(包含查看权限和按钮权限,列名权限) |
给个体分配查看权限,和按钮操作权限;列名权限(能查看哪些列) |
新增数据时都要有:个体类型(首先有这个模块权限);新增数据时都有类似的 分公司有编码,省份有编码,学校有编码,班级有班号(绑定编码决定看什么样的数据) |
个体绑定模块时,选择可查看列名,如果都不选,则字段“是否查看所有列”值1 |
默认勾选“所有权限”,默认“是否分配所有权限”为1;可以取消勾选去掉所有权限,可以取消所有权限后,灵活配置权限; |
针对上级,权限结构也是如此,默认勾选所有权限,默认“是否分配所有权限”为1;可以取消勾选去掉所有权限,可以取消所有权限后,灵活配置权限; |
用户表 |
模块表(菜单表) |
用户和菜单关系表 |
菜单和按钮关系表 |
人》菜单》按钮 |
人》菜单》行编码(通过选择分公司名称或学校名称,绑定分公司编码,学校编码);默认有所有权限;(绑定基础数据:分公司,学校,省份;默认都有)-按钮(默认都有)-列(默认都有) |
突然再增加一个,来到公司不同时间段的人只能看到公司某部门运营到现在某个周期内的数据;--数据权限千万种,没有一个通用数据权限配置功能可以拿来直接使用 |
古代皇帝让人去办事,都会封官,名正言顺;必须要有一个角色 才有做这个角色做的事情; |
本来只有杀手这个角色,系统运转正常N年之后,皇帝从杀手里安排了一个赦免权限给它 |
因为在系统其他模块中 没人知道谁有赦免权限;以后杀手们出去办事,要赦免的时候,都会被先检查,是不是有新增的赦免权限,有才能赦免人,这是增加逻辑 |
通过配置 生成查询逻辑;有的复杂的视图,存储过程,还是要必须人为增加; |
用EF可以搞定 它的SQL语句是可以通过反射类来创建表达式树(EF会自动通过树转换成SQL语句);新增权限逻辑时,只要人为的增加类关系即可; |
特别复杂权限难度也是极大;所以在做需求时 按需求尽可能满足是最明智的; |