5.14. 四象封印の数据过滤 - 图1四象封印:用于封锁列数据或行数据,是利用数据过滤来封锁不想让别人看见的数据!

需求背景

需求背景:列数据过滤只有财务角色才可以看见订单金额字段,其它角色看其它字段信息.

需求背景:行数据过滤上海总代理角色只能查看上海地区的数据

前置技能:元对象和菜单均可配置过滤条件

行数据过滤条件举例

  1. <%if(user.me.region != 0) { %>
  2. region = ${user.me.region}
  3. <%}else if(user.me.city != 0) { %>
  4. city = ${user.me.city}
  5. <%}else if(user.me.province != 0) { %>
  6. province = ${user.me.province}
  7. <%}%>

解释:user=eova.eova_user表me=demo.member表 在登录时将member对象set到User对象上region,city,province=省市区ID

效果解读:省长看全省数据,市长看全市数据,区长看全区数据

PS:角色判定直接使用 user.rid

列数据按角色授权: 1.6-beta1 开始支持

OSSConfig override EovaConfig.authField()

  1. @Override
  2. protected void authField() {
  3. super.authField();
  4. //添加字段授权规则
  5. //语法:元对象编码.元字段英文名->允许查看的角色1ID,角色2ID
  6. addAuthField("orders.money->1,2");
  7. }

同理,也可以用配置文件或DB进行管理,甚至可做成功能,根据需要进一步封装和扩展