Fix roles

This commit is contained in:
Jan Kvetina 2021-12-24 11:43:30 +01:00
parent 60123d1058
commit 6d7419875c
5 changed files with 46 additions and 6 deletions

View File

@ -20,9 +20,9 @@ wwv_flow_api.create_page(
,p_autocomplete_on_off=>'OFF'
,p_group_id=>wwv_flow_api.id(9240371448352386)
,p_page_template_options=>'#DEFAULT#'
,p_required_role=>wwv_flow_api.id(9556407311505078)
,p_required_role=>wwv_flow_api.id(9823062898204869)
,p_last_updated_by=>'DEV'
,p_last_upd_yyyymmddhh24miss=>'20211222211403'
,p_last_upd_yyyymmddhh24miss=>'20211224091408'
);
wwv_flow_api.create_page_plug(
p_id=>wwv_flow_api.id(9263989035429040)
@ -34,6 +34,7 @@ wwv_flow_api.create_page_plug(
,p_include_in_reg_disp_sel_yn=>'Y'
,p_plug_display_point=>'BODY'
,p_plug_query_options=>'DERIVED_REPORT_COLUMNS'
,p_plug_required_role=>wwv_flow_api.id(9556407311505078)
,p_attribute_01=>'N'
,p_attribute_02=>'HTML'
);

View File

@ -20,9 +20,9 @@ wwv_flow_api.create_page(
,p_autocomplete_on_off=>'OFF'
,p_group_id=>wwv_flow_api.id(9240371448352386)
,p_page_template_options=>'#DEFAULT#'
,p_required_role=>wwv_flow_api.id(9556407311505078)
,p_last_updated_by=>'DEV_ID'
,p_last_upd_yyyymmddhh24miss=>'20211223230146'
,p_required_role=>wwv_flow_api.id(9823062898204869)
,p_last_updated_by=>'DEV'
,p_last_upd_yyyymmddhh24miss=>'20211224103042'
);
wwv_flow_api.create_page_plug(
p_id=>wwv_flow_api.id(9264033779429041)
@ -361,6 +361,7 @@ wwv_flow_api.create_region_column(
,p_is_primary_key=>false
,p_duplicate_value=>true
,p_include_in_export=>true
,p_security_scheme=>wwv_flow_api.id(9556407311505078)
);
wwv_flow_api.create_interactive_grid(
p_id=>wwv_flow_api.id(10242115456410310)
@ -472,6 +473,9 @@ wwv_flow_api.create_ig_report_column(
,p_is_visible=>true
,p_is_frozen=>false
,p_width=>177.297
,p_sort_order=>1
,p_sort_direction=>'DESC'
,p_sort_nulls=>'FIRST'
);
wwv_flow_api.create_ig_report_column(
p_id=>wwv_flow_api.id(10276123871192635)

View File

@ -15,7 +15,7 @@ wwv_flow_api.create_security_scheme(
p_id=>wwv_flow_api.id(9823062898204869)
,p_name=>'IS_ADMINISTRATOR'
,p_scheme_type=>'NATIVE_FUNCTION_BODY'
,p_attribute_01=>'RETURN TRUE;'
,p_attribute_01=>'RETURN a770.is_administrator() = ''Y'';'
,p_error_message=>'ACCESS_DENIED'
,p_caching=>'BY_USER_BY_PAGE_VIEW'
);

7
packages/a770.spec.sql Normal file
View File

@ -0,0 +1,7 @@
CREATE OR REPLACE PACKAGE a770 AS
FUNCTION is_administrator
RETURN CHAR;
END;
/

28
packages/a770.sql Normal file
View File

@ -0,0 +1,28 @@
CREATE OR REPLACE PACKAGE BODY a770 AS
FUNCTION is_administrator
RETURN CHAR AS
is_valid CHAR;
BEGIN
IF app.is_developer() THEN
RETURN 'Y';
END IF;
--
SELECT 'Y' INTO is_valid
FROM user_roles u
JOIN roles r
ON r.app_id = u.app_id
AND r.role_id = u.role_id
WHERE u.app_id = app.get_app_id()
AND u.user_id = app.get_user_id()
AND u.role_id = app.get_caller_name()
AND r.is_active = 'Y';
--
RETURN is_valid;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN 'N';
END;
END;
/