35
src/main/resources/mapper/OrdsMetadataMapper.xml
Normal file
35
src/main/resources/mapper/OrdsMetadataMapper.xml
Normal file
@@ -0,0 +1,35 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"https://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.cloudhandson.vpdbackoffice.mapper.OrdsMetadataMapper">
|
||||
<select id="findHandlers" resultType="com.cloudhandson.vpdbackoffice.domain.ords.OrdsHandlerView">
|
||||
SELECT s.pattern AS schema_name,
|
||||
m.name AS module_name,
|
||||
m.uri_prefix AS base_path,
|
||||
t.uri_template AS template,
|
||||
h.method,
|
||||
h.source_type,
|
||||
DBMS_LOB.SUBSTR(h.source, 12000, 1) AS source,
|
||||
(
|
||||
SELECT LISTAGG(p.name || ' -> :' || p.bind_variable_name || ' (' || p.source_type || ')', CHR(10))
|
||||
WITHIN GROUP (ORDER BY p.name)
|
||||
FROM dba_ords_parameters p
|
||||
WHERE p.handler_id = h.id
|
||||
) AS parameters,
|
||||
CAST(NULL AS VARCHAR2(1)) AS package_source
|
||||
FROM dba_ords_schemas s
|
||||
JOIN dba_ords_modules m ON m.schema_id = s.id
|
||||
JOIN dba_ords_templates t ON t.module_id = m.id
|
||||
JOIN dba_ords_handlers h ON h.template_id = t.id
|
||||
WHERE s.parsing_schema = 'CB_ORDS'
|
||||
ORDER BY m.name, t.uri_template, h.method
|
||||
</select>
|
||||
|
||||
<select id="findHandlerPackageSource" resultType="string">
|
||||
SELECT LISTAGG(text, '') WITHIN GROUP (ORDER BY line)
|
||||
FROM all_source
|
||||
WHERE owner = 'CB_ORDS'
|
||||
AND name = 'CB_ORDS_HANDLER_PKG'
|
||||
AND type = 'PACKAGE BODY'
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -46,7 +46,28 @@
|
||||
SELECT LISTAGG(pc.column_name, ', ') WITHIN GROUP (ORDER BY pc.column_name)
|
||||
FROM cb_permission_column pc
|
||||
WHERE pc.permission_id = p.perm_id
|
||||
) AS visible_columns
|
||||
) AS visible_columns,
|
||||
(
|
||||
SELECT LISTAGG(
|
||||
CASE
|
||||
WHEN pr2.rule_type = 'ALL' THEN 'ALL ROWS'
|
||||
WHEN pr2.rule_type = 'MY_DEPT' THEN pr2.rule_column || ' = SYS_CONTEXT(CB_AGENT_CTX.DEPT_CODE)'
|
||||
WHEN pr2.rule_type = 'SELF' THEN pr2.rule_column || ' = SYS_CONTEXT(CB_AGENT_CTX.EMP_NO)'
|
||||
ELSE pr2.rule_column || ' ' || pr2.rule_type || ' ' || pr2.rule_value
|
||||
END,
|
||||
CHR(10) || 'AND '
|
||||
) WITHIN GROUP (ORDER BY pr2.rule_id)
|
||||
FROM cb_permission_rule pr2
|
||||
WHERE pr2.perm_id = p.perm_id
|
||||
) AS filter_preview,
|
||||
(
|
||||
SELECT CASE
|
||||
WHEN COUNT(*) = 0 THEN '모든 민감 컬럼 NULL 처리'
|
||||
ELSE 'NULL 제외: ' || LISTAGG(pc2.column_name, ', ') WITHIN GROUP (ORDER BY pc2.column_name)
|
||||
END
|
||||
FROM cb_permission_column pc2
|
||||
WHERE pc2.permission_id = p.perm_id
|
||||
) AS null_policy_preview
|
||||
FROM cb_permission p
|
||||
JOIN cb_app_role r ON r.role_id = p.role_id
|
||||
LEFT JOIN cb_protected_object o ON o.object_name = p.target_name
|
||||
|
||||
Reference in New Issue
Block a user