El paquete APEX_AUTHORIZATION contiene funciones de utilidad pública que se utilizan para controlar y consultar los derechos de acceso a la aplicación.
Está compuesto por los siguientes procedimientos y funciones.
Procedimiento ENABLE_DYNAMIC_GROUPS
Este procedimiento habilita grupos en la sesión actual. Estos grupos no tienen que crearse en el repositorio del espacio de trabajo de APEX, pero pueden cargarse desde un repositorio LDAP o recuperarse de un encabezado HTTP de confianza. Habilitar un grupo que existe en el repositorio del espacio de trabajo y tiene otros grupos otorgados, también habilita los grupos otorgados.
Si Real Application Security, disponible con Oracle Database versión 12g, está habilitado para el esquema de autenticación, todos los grupos dinámicos se habilitan como grupos externos o dinámicos de RAS (dependiendo de si el grupo existe en dba_xs_dynamic_roles).
Este procedimiento debe llamarse durante o justo después de la autenticación, por ejemplo, en un procedimiento posterior a la autenticación.
La sintaxis utilizada es:
APEX_AUTHORIZATION.ENABLE_DYNAMIC_GROUPS (
p_group_names IN apex_t_varchar2 );
Donde,
Parámetro | Descripción |
---|---|
|
Tabla de nombres de grupos. |
Por ejemplo:
begin
apex_authorization.enable_dynamic_groups (
p_group_names => apex_t_varchar2(‘SALES’, ‘HR’) );
end;
Función IS_AUTHORIZED
Determine si el usuario actual pasa la autorización con el nombre p_authorization_name. Por motivos de rendimiento, los resultados de la autorización se almacenan en caché. Debido a esto, es posible que la función no siempre evalúe la autorización cuando se la llama, sino que extraiga el resultado de la memoria caché.
La sintaxis utilizada es:
APEX_AUTHORIZATION.IS_AUTHORIZED (
p_authorization_name IN VARCHAR2 )
RETURN BOOLEAN;
Donde:
Parámetro | Descripción |
---|---|
|
El nombre del esquema de autorización en la aplicación. |
Retorna:
Valor | Descripción |
---|---|
|
Si la autorización es exitosa. |
|
Si la autorización no es exitosa. |
Por ejemplo:
begin
sys.htp.p(‘User Is Admin: ‘||
case apex_authorization.is_authorized (
p_authorization_name => ‘User Is Admin’ )
when true then ‘YES’
when false then ‘NO’
else ‘null’
end);
end;
Procedimiento RESET_CACHE
Este procedimiento restablece los cachés de autorización para la sesión y fuerza una nueva evaluación cuando se verifica una autorización a continuación.
La sintaxis utilizada es una de las siguientes:
APEX_AUTHORIZATION.RESET_CACHE;
Por ejemplo:
apex_authorization.reset_cache;