more concise recursive CTE query

This commit is contained in:
Michael Hoennig 2024-08-12 10:54:53 +02:00
parent bfac0dd37e
commit 0580cedcf1

View File

@ -189,15 +189,11 @@ begin
select g.descendantUuid, g.ascendantUuid, level + 1 as level select g.descendantUuid, g.ascendantUuid, level + 1 as level
from RbacGrants g from RbacGrants g
inner join grants on grants.descendantUuid = g.ascendantUuid inner join grants on grants.descendantUuid = g.ascendantUuid
where g.assumed where g.assumed and level<10
),
granted as (
select distinct descendantUuid
from grants
) )
select distinct perm.objectUuid as objectUuid select distinct perm.objectUuid as objectUuid
from granted from grants
join RbacPermission perm on granted.descendantUuid = perm.uuid join RbacPermission perm on grants.descendantUuid = perm.uuid
join RbacObject obj on obj.uuid = perm.objectUuid join RbacObject obj on obj.uuid = perm.objectUuid
where obj.objectTable = '%1$s' -- 'SELECT' permission is included in all other permissions where obj.objectTable = '%1$s' -- 'SELECT' permission is included in all other permissions
limit 8001 limit 8001