请问利用部门做数据隔离,如何控制部门删除?

提问 3 1228
版本:renren-security v4.0.0 开发环境:chrome 69
我阅读reren-secruity源码时发现,利用部门做数据隔离,部门删除为逻辑删除,角色指定部门。 呢么我是不是可以理解,如果后续进行业务扩张,所有属于数据资源的表都需要添加部门字段,来指定该数据属于哪个部门? 如果是这样,我想询问下,目前的部门删除,如果被删除掉。我可以首先判断是否被角色关联,如果是,则提示不允许删除,到那时如何处理数据资源中的所属部门字段呢? 拿用户举例: 用户表中有部门字段,即表示该用户属于哪一个部门,同部门的管理员可以查看该部门下所有的用户数据,如何现在把部门删除,呢么有一个问题就是,该部门管理员用户还在,部门管理员登录上来后,查询该部门的用户列表时,用户列表会为空。有什么更好的处理该情况的办法? 谢谢!
回帖
  • 找小乐乐乐子
    2019-05-31
    A部门有3个操作用户和1个部门管理员用户,3个用户的角色是“A部门操作员”,管理员角色是“A部门管理员”,“A部门操作员”和“A部门管理员”角色都关联A部门,即这两个角色都有访问A部门数据的权限,现在如果删除“A部门”记录,也删除掉“A部门操作员”和“A部门管理员”角色和“A部门的”关联关系(sys_role_dept表)记录,因为A部门管理员用户还存在,所以A部门管理员用户登录后,去查看用户列表,这时候是看不到3个操作用户的数据的。 请问关于这点有没有好一些的处理方式,或者从删除部门这个操作的时候就做校验之类的。
    0 回复
  • 木公
    2019-06-04
    @找小乐乐乐子 其实严谨起见在做部门删除的时候可以做下校验,如果有该部门下的用户存在,则提示不能删除,或者如果强行删除则该部门下的用户部门归属将为空或者自动为父级部门,根据业务需要可自行处理。 一般情况下组织权限这块儿内容相对稳定,不会有太多变化。因为这是其他业务处理的基础,如非必要,不建议组织权限做删除操作,可以对其修改和扩展。自己的一点儿理解~ 如有不妥还望明示~
    1 回复
  • 找小乐乐乐子
    2019-06-05
    @木公 首先非常感谢您的回答,这个问题我也是站着纯粹的代码逻辑角度出发的,考虑到业务,部门架构的删除应该是比较少的操作。或者如您若言我们可以屏蔽掉部门删除的操作权限。这里多啰嗦一下,部门这个概念是用作数据隔离、或者说数据权限的。呢么也就意味着我只要认为某一种数据需要隔离,我全部要添加部门字段。呢么假如说,我现在有用户,我需要隔离,用户表里添加所属部门字段,我删除部门的时候校验下用户表中是否有关联的用户,如果现在平台扩展,我又加入了一个新的实体资源(数据),比如设备,创建设备表,添加所属部门字段,那么是不是在删除部门的时候,即得查询用户表又得查询设备表,一次类推,随着时间的推移,我删除一个部门的时候得去查询所有存在“所属部门”字段的表,这是不是有点。。不友好啊。。。。兄弟还有什么高见么?
    0 回复