[Developer] #424 preserve ORDS templates and force auth context
This commit is contained in:
@@ -88,17 +88,13 @@ BEGIN
|
|||||||
p_method => 'POST',
|
p_method => 'POST',
|
||||||
p_source_type => ORDS.source_type_query,
|
p_source_type => ORDS.source_type_query,
|
||||||
p_source => q'!
|
p_source => q'!
|
||||||
WITH vpd_ctx AS (
|
|
||||||
SELECT cb_ords_handler_pkg.set_vpd_context_sql(:auth_header) AS applied
|
|
||||||
FROM dual
|
|
||||||
)
|
|
||||||
SELECT d.doc_id,
|
SELECT d.doc_id,
|
||||||
d.title,
|
d.title,
|
||||||
d.owner_emp_no,
|
d.owner_emp_no,
|
||||||
d.dept_code,
|
d.dept_code,
|
||||||
d.contents
|
d.contents
|
||||||
FROM admin.cb_v_search_documents d
|
FROM admin.cb_v_search_documents d
|
||||||
CROSS JOIN vpd_ctx
|
WHERE (SELECT cb_ords_handler_pkg.set_vpd_context_sql(:auth_header) FROM dual) = 1
|
||||||
!',
|
!',
|
||||||
p_items_per_page => 25
|
p_items_per_page => 25
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -161,13 +161,23 @@ public class OrdsMetadataService {
|
|||||||
String source = objectQueryHandlerSource(objectId);
|
String source = objectQueryHandlerSource(objectId);
|
||||||
|
|
||||||
ordsMetadataJdbcTemplate.update("""
|
ordsMetadataJdbcTemplate.update("""
|
||||||
|
DECLARE
|
||||||
|
v_module_count NUMBER;
|
||||||
BEGIN
|
BEGIN
|
||||||
|
SELECT COUNT(*)
|
||||||
|
INTO v_module_count
|
||||||
|
FROM user_ords_modules
|
||||||
|
WHERE name = ?;
|
||||||
|
|
||||||
|
IF v_module_count = 0 THEN
|
||||||
ORDS.DEFINE_MODULE(
|
ORDS.DEFINE_MODULE(
|
||||||
p_module_name => ?,
|
p_module_name => ?,
|
||||||
p_base_path => ?,
|
p_base_path => ?,
|
||||||
p_items_per_page => 25,
|
p_items_per_page => 25,
|
||||||
p_status => 'PUBLISHED'
|
p_status => 'PUBLISHED'
|
||||||
);
|
);
|
||||||
|
END IF;
|
||||||
|
|
||||||
ORDS.DEFINE_TEMPLATE(
|
ORDS.DEFINE_TEMPLATE(
|
||||||
p_module_name => ?,
|
p_module_name => ?,
|
||||||
p_pattern => ?
|
p_pattern => ?
|
||||||
@@ -203,6 +213,7 @@ public class OrdsMetadataService {
|
|||||||
COMMIT;
|
COMMIT;
|
||||||
END;
|
END;
|
||||||
""",
|
""",
|
||||||
|
moduleName,
|
||||||
moduleName, basePath,
|
moduleName, basePath,
|
||||||
moduleName, template,
|
moduleName, template,
|
||||||
moduleName, template, source,
|
moduleName, template, source,
|
||||||
@@ -218,14 +229,10 @@ public class OrdsMetadataService {
|
|||||||
.reduce((left, right) -> left + ",\n " + right)
|
.reduce((left, right) -> left + ",\n " + right)
|
||||||
.orElseThrow();
|
.orElseThrow();
|
||||||
return """
|
return """
|
||||||
WITH vpd_ctx AS (
|
|
||||||
SELECT cb_ords_handler_pkg.set_vpd_context_sql(:auth_header) AS applied
|
|
||||||
FROM dual
|
|
||||||
)
|
|
||||||
SELECT %s
|
SELECT %s
|
||||||
FROM %s.%s o
|
FROM %s.%s o
|
||||||
CROSS JOIN vpd_ctx
|
WHERE (SELECT cb_ords_handler_pkg.set_vpd_context_sql(:auth_header) FROM dual) = 1
|
||||||
WHERE ROWNUM <= LEAST(GREATEST(NVL(:row_limit, 50), 1), 500)
|
AND ROWNUM <= LEAST(GREATEST(NVL(:row_limit, 50), 1), 500)
|
||||||
""".formatted(selectColumns, object.owner(), object.objectName());
|
""".formatted(selectColumns, object.owner(), object.objectName());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user