租户失效以及租户设计问题?(见问题六)

Blade 未结 3 1902
dudulu
dudulu 2020-06-04 15:31

一、该问题的重现步骤是什么?

  1. 实体继承了tenantentity

    image.png

2. 插入和查询的时候,字段里面的确会自动加入 tenant_id

3.但是查询条件里面,不会加上以tenant_id作为条件的sql



二、你期待的结果是什么?实际看到的又是什么?

期待在查询条件中,加入  where  tenant_id = ?
实际上,没有成功



三、你正在使用的是什么产品,什么版本?在什么操作系统上?

2.5.0 win

四、请提供详细的错误堆栈信息,这很重要。

image.png

五、若有更多详细信息,请在下面提供。




六、疑问?


我们的系统是给公司使用的,一个公司是一个租户,现在监管部门需要查看监管区域下的所有公司数据,这个时候,监管部门不属于任何租户,查询的时候,如果使用租户系统,会出现问题。求助大佬该如何进行设计。

3条回答
  •  smallchill
    smallchill (楼主)
    2020-06-04 17:37

    image.png

    你说的话相互矛盾了,我不知道你的情况到底是会加上还是不会加上。

    另外你去测试下notice模块,采用非超管账号,应该可以看到会自动加上tenant_id的条件

    image.png



    如果要满足监管用户不过滤租户的话,很简单,只要模仿下图截图,设立一个监管角色,如果请求者是这个监管角色就放行,不进行租户过滤,加上一个很简单的条件即可

    image.png

    image.png


    如果你不想重写BladeX-Tool的类,你可以在业务框架继承BladeTenantSqlParser,然后新的类重写这个方法,再把他实例化到spring的bean容器内就行,比如你可以把下一段代码放到blade-common的config类里,把new出来的类改成你的子类,返回的依然是BladeTenantSqlParser。这样一来,系统底层就会读取你自己拓展的逻辑了

    image.png

提交回复