97 lines
2.4 KiB
SQL
97 lines
2.4 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.version AS app_version,
|
|
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,
|
|
--
|
|
CASE WHEN p.page_id IS NOT NULL
|
|
THEN 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
|
|
) END AS app_url,
|
|
--
|
|
p.app_version,
|
|
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,
|
|
NULL AS action,
|
|
a.app_id AS action_id
|
|
FROM apps a
|
|
LEFT JOIN p
|
|
ON p.app_id = a.app_id
|
|
UNION ALL
|
|
--
|
|
SELECT
|
|
p.app_id,
|
|
p.app_name,
|
|
p.app_alias,
|
|
p.app_group,
|
|
p.app_schema,
|
|
--
|
|
app.get_page_link (
|
|
in_page_id => p.page_id,
|
|
in_app_id => p.app_id
|
|
) AS app_url,
|
|
--
|
|
p.app_version,
|
|
p.authentication_scheme,
|
|
p.last_updated_on,
|
|
p.count_pages,
|
|
--
|
|
NULL AS is_active,
|
|
NULL AS is_visible,
|
|
NULL AS is_available,
|
|
--
|
|
NULL AS description_,
|
|
NULL AS message,
|
|
--
|
|
app.get_icon('fa-plus-square', 'Create new record') AS action,
|
|
p.app_id AS action_id
|
|
FROM p
|
|
LEFT JOIN apps a
|
|
ON a.app_id = p.app_id
|
|
WHERE a.app_id IS NULL;
|
|
|