首先我的理解是,部门表一般跟用户表关联。如果你的文档表中有记录用户标识的话,这样就可以把文档表与用户表关联,然后根据当前登录用户的id查询出对应的部门id,然后通过部门id去查询。但是这个需要改sql。
如果你不想改sql的话,用aop去做。那就是先获取当前登录用户的部门,然后再通过部门把该部门下的所有用户标识查出来,再去通过用户标识筛选返回的数据,再返回给前端。
首先明确你的查询需求,比如用户要传递部门 id 参数查询?还是直接根据登录 session 获取用户所在的部门?这完全是两个接口。
最好不要涉及到 SQL 的动态调整,建议查询前先做校验,如果查的不是本部门的数据,直接拒绝
对于数据权限控制,常见的一种实现方式是在数据库表中加入部门ID字段,并在查询数据时通过AOP拦截来拼接SQL,限制只能查询本部门的数据。这种方式确实是一种常见的实现方式,但不是唯一的方式。
如果你有多个表需要进行数据权限控制,可以按照以下几种方式实现:
首先我的理解是,部门表一般跟用户表关联。如果你的文档表中有记录用户标识的话,这样就可以把文档表与用户表关联,然后根据当前登录用户的id查询出对应的部门id,然后通过部门id去查询。但是这个需要改sql。
如果你不想改sql的话,用aop去做。那就是先获取当前登录用户的部门,然后再通过部门把该部门下的所有用户标识查出来,再去通过用户标识筛选返回的数据,再返回给前端。
首先明确你的查询需求,比如用户要传递部门 id 参数查询?还是直接根据登录 session 获取用户所在的部门?这完全是两个接口。
最好不要涉及到 SQL 的动态调整,建议查询前先做校验,如果查的不是本部门的数据,直接拒绝
对于数据权限控制,常见的一种实现方式是在数据库表中加入部门ID字段,并在查询数据时通过AOP拦截来拼接SQL,限制只能查询本部门的数据。这种方式确实是一种常见的实现方式,但不是唯一的方式。
如果你有多个表需要进行数据权限控制,可以按照以下几种方式实现: