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

p_group_names

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

p_authorization_name

El nombre del esquema de autorización en la aplicación.

Retorna:

Valor Descripción

TRUE

Si la autorización es exitosa.

FALSE

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;

 

 

Share This