CORE/views/users_apps.sql

59 lines
1.6 KiB
SQL

CREATE OR REPLACE VIEW users_apps AS
WITH p AS (
SELECT
a.application_id AS app_id,
a.alias AS app_alias,
a.application_group AS app_group,
a.owner AS app_schema,
a.application_name AS app_name,
a.authentication_scheme,
a.last_updated_on,
a.pages AS count_pages,
p.page_id
FROM apex_applications a
JOIN apex_application_pages p
ON p.application_id = a.application_id
AND a.home_link LIKE '%:' || p.page_alias || ':%'
)
SELECT
a.app_id,
NVL(p.app_name, a.app_name) AS app_name,
p.app_alias,
p.app_group,
p.app_schema,
--
app.get_page_link (
in_page_id => p.page_id,
in_app_id => a.app_id,
in_session_id => CASE WHEN a.app_id = app.get_core_app_id() THEN 0 END
) AS app_url,
--
p.authentication_scheme,
p.last_updated_on,
p.count_pages,
--
a.is_active,
a.is_visible,
--
CASE WHEN
p.app_schema IS NOT NULL
AND (
a.is_visible = 'Y'
OR a.app_id IN (
SELECT r.app_id
FROM user_roles r
WHERE r.user_id = app.get_user_id()
)
)
AND (
app.is_developer_y() = 'Y'
OR a.app_id != app.get_core_app_id()
)
THEN 'Y' END AS is_available,
--
a.description_,
a.message
FROM apps a
LEFT JOIN p
ON p.app_id = a.app_id;