根据权限控制组织机构树的部分(全部)显示引发的种种新“姿势”

Posted AmourOnce

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了根据权限控制组织机构树的部分(全部)显示引发的种种新“姿势”相关的知识,希望对你有一定的参考价值。


select *
  from ORGANIZATION a
 where a.name 条件3
 START WITH a.code = \'1\' 条件1
CONNECT BY PRIOR a.code = a.parent_code 条件2
 order by a.sort ASC

  条件1 是根结点的限定语句,当然可以放宽限定条件,以取得多个根结点,实际就是多棵树。
      条件2 是连接条件,其中用PRIOR表示上一条记录,比如 CONNECT BY PRIOR org_id = parent_id;就是说上一条记录的org_id 是本条记录的parent_id,即本记录的父亲是上一条记录。
      条件3 是过滤条件,用于对返回的所有记录进行过滤。

 

  稍微整理了,下面的SQL是根据权限来展示,只需要传入code

select *
  from ORGANIZATION a 
 START WITH a.code = \'具体的编码\'
CONNECT BY PRIOR a.code = a.parent_code
order by a.sort ASC

 

这个SQL 是可以把查到的该函数可以把列值以","号分隔起来,并显示成一行,组成一个大字段clob的数据。

 

select wm_concat(code)
  from ORGANIZATION a 
 START WITH a.code = \'103\'
CONNECT BY PRIOR a.code = a.parent_code
 order by a.sort ASC

 

以上是关于根据权限控制组织机构树的部分(全部)显示引发的种种新“姿势”的主要内容,如果未能解决你的问题,请参考以下文章

ThinkPHP类似于RBAC的权限控制

Java之访问权限控制符以及结合继承体系引发的注意事项

权限系统设计

Linux及安全——页表实践

用户-角色-权限系统概述

XCUITest - 选定的单元格未显示在 iOS 15 的层次结构树中