Ocultación de acciones que el usuario no puede realizar

Un diseñador de esquemas puede ocultar acciones a los usuarios que no tienen permiso para realizarlas.
Las acciones en un esquema se podrían visualizar en ClearQuest incluso si un usuario no tiene permiso para realizar todas las acciones. Un diseñador de esquemas tiene la posibilidad de ocultar acciones que un enganche de control de acceso de acción controla. Las acciones que se ocultan a los usuarios no aparecen el los menús de Modificar, Cambiar estado o Programas de utilidad en el cliente de ClearQuest. El valor que se especifica en Control de acceso determina si se oculta una acción.

Ocultación de acciones para el control de acceso SCRIPTS: propiedad de esquema HIDE_ACTIONS

En primer lugar, se debe habilitar el esquema para ocultar acciones. Ejecute el mandato packageutil para establecer la propiedad de esquema HIDE_ACTIONS en 1. La propiedad de esquema HIDE_ACTIONS se establece en la última versión del esquema. El formato del mandato es el siguiente:

packageutil setproperty –dbset <conjuntobd> <usuario> <contraseña> <esquema> HIDE_ACTIONS 1

Si desea inhabilitar la ocultación de acciones, establezca la propiedad de esquema HIDE_ACTIONS en 0.
Nota: El rendimiento de la visualización de los formularios de registro puede ser afectado al establecer el valor de variable de sesión HIDE_ACTIONS en 1. Los enganches de control de acceso de todas las acciones en el registro se ejecutarán para determinar si la acción se debe visualizar para el usuario. Si el esquema tiene un número grande de acciones, o si el script de enganche de control de acceso se procesa con lentitud, el usuario podría percibir que el formulario de registro se carga con lentitud.

Variable de sesión ratl_GetLegalAction

Cuando la propiedad de esquema HIDE_ACTIONS se establece en 1 para ocultar acciones y el Control de acceso se establece en SCRIPTS, se puede llamar al enganche de control de acceso para determinar si el nombre de acción se debería ocultar al usuario en los menús del cliente de ClearQuest, o para comprobar si se le permite realizar esta acción. El diseñador de esquemas puede personalizar el enganche para que compruebe el valor de la variable de sesión ratl_GetLegalAction, que indica la razón por la que se llama al enganche.
  • Si el valor de ratl_GetLegalAction coincide con el nombre de visualización del registro actual, se llama al enganche para determinar si se debería ocultar la acción. El enganche devuelve el valor 0 si se debe ocultar la acción. El enganche devuelve el valor 1 si se debe mostrar el nombre de la acción.
  • Si el valor de ratl_GetLegalAction no coincide con el nombre de visualización del registro actual, se llama al enganche para determinar si el usuario tiene permiso para ejecutar esta acción. La acción se ha seleccionado y se ejecutará si el enganche de control de acceso devuelve un valor 1. Incluso si el nombre de acción se ocultó al usuario en los menús de cliente de ClearQuest, se puede invocar a la acción a través de un script externo o de un enganche anidado. El cliente ClearQuest visualizará un mensaje de error genérico que indicará que esta acción no está permitida si el enganche de control de acceso de acción devuelve un 0. De forma alternativa, el enganche puede visualizar un mensaje de error más descriptivo pasando información a una función Perl die() o a un método VBScript Err.Raise(). El mensaje podría contener información sobre una condición previa que no se satisface o la razón por la que el usuario no tiene permiso para ejecutar la acción.

Ejemplo

El siguiente ejemplo Perl muestra cómo personalizar el enganche para que decida si la acción se oculta o no se oculta. También es posible escribir este tipo de enganche de control de acceso con VBScript.
    # Start User Code
    # Set $result to 1 if the user has permission to perform
    # this action, otherwise set it to 0.

    $result = 0;

    if ($session->IsUserSuperUser()) {
        # A super user can always do this action.
        $result = 1;
    }
    else {
        my $GLA = $session->GetNameValue("ratl_GetLegalAction");
        my $myName = $entity->GetDisplayName();
        if ($GLA eq $myName) {
            # This hook was called for hide action.
            # To hide the action, return 0 by uncommenting the following line
            # $result = 0
            # and then delete or comment out the $result = 1 below
            #
            # Or, to always show the action so the user will see 
            # a detailed message if they try to run it. 
            $result = 1;
        }
        else {
            my $user  = $session->GetUserLoginName();
            my $owner = $entity->GetFieldStringValue("Owner");
            if ($user ne $owner) {
                die "Only the owner can perform this action."; 
            }
            $result = 1;
        }
    }
    # End User Code    

Conéctese al canal de YouTube de soporte de IBM® Rational para obtener más información sobre cómo ocultar acciones.


Comentarios