SetHookSeesAllUsers

Descripción

Especifica si el enganche actual ve a todos los usuarios o únicamente a los usuarios que el usuario actual está autorizado a ver.

Permite a los desarrolladores de esquemas controlar la visibilidad de enganches para usuarios de enganche en enganche. La función Set especifica la visibilidad durante el tiempo que dura la ejecución del enganche actual únicamente.

Si establece el método en True (1) especifica que el enganche actual ve a todos los usuarios cuando ejecuta una consulta. False (0) significa que el enganche actual sólo ve a los usuarios que el usuario actual está autorizado a ver (basándose en el privilegio de usuario real del usuario para la sesión) cuando ejecuta una consulta. Para los niveles de característica 5 y 6, el valor predeterminado para estas propiedades es True (1). Para el nivel de característica 7, los valores predeterminados son False (0).

Por ejemplo, si el comportamiento predeterminado es que un enganche no vea a todos los usuarios, la línea siguiente
  • no tiene efecto
    $session->SetHookSeesAllUsers(0);
  • garantiza que el enganche ve a todos los usuarios
    $session->SetHookSeesAllUsers(1);

Las propiedades de las bases de datos maestras HOOKS_SEE_ALL_USERS y HOOKS_SEE_ALL_RECORDS permiten a los desarrolladores de esquemas configurar la visibilidad predeterminada para todos los enganches de las bases de datos. Para los niveles de característica 5 y 6, el valor predeterminado para estas propiedades es True (1). Para el nivel de característica 7, los valores predeterminados son False (0).Consulte las páginas de referencia de la CLI (interfaz de línea de mandatos) para obtener información sobre los mandatos CLI.

El ejemplo siguiente hace que el campo de asignado a usuario llene la lista de opciones con un enganche que lista únicamente los usuarios de los grupos del usuario actual:
sub AssignedTo_ChoiceList {
  my($fieldname) = @_;
  my @choices;
  my $session = $entity->GetSession();
  $session->SetHookSeesAllUsers(0);
  my $queryDefObj = $session->BuildQuery("users");
  $queryDefObj->BuildField("login_name");
  my $resultSetObj = $session->BuildResultSet($queryDefObj);
  $resultSetObj->Execute();

  while ($resultSetObj->MoveNext() == $CQPerlExt::CQ_SUCCESS) {
    push(@choices,$resultSetObj->GetColumnValue(1));
  }
 return @choices;
}
Nota: Este método estuvo disponible en la versión 7.1.

Sintaxis

VBScript

user_restr = session.SetHookSeesAllUsers set_vis 

Perl

session->SetHookSeesAllUsers(set_vis); 
Identificador
Descripción
session
El objeto Session que representa la sesión de acceso a la base de datos actual.
set_vis
Un valor Boolean que especifica si el enganche actual ve a todos los usuarios o únicamente a los usuarios que el usuario actual está autorizado a ver. True especifica que el enganche actual ve a todos los usuarios cuando ejecuta una consulta de usuario. False especifica que el enganche actual sólo puede ver a los usuarios que el usuario actual está autorizado a ver cuando ejecuta una consulta de usuario.
Valor de retorno
Ninguno.

Ejemplos

VBScript

sub project_ChoiceList(fieldname, choices)
  ' fieldname As String
  ' choices As Object
  ' record type name is Defect
  ' field name is project

set session = GetSession
dim curHooksSeesAllUsers

' Store current session "Context"
curHookSeesAllUsers = session.GetHookSeesAllUsers()

' set session context to "User Context"
session.SetHookSeesAllUsers(0)

set querydef = session.BuildQuery("project") 
querydef.BuildField("name") 
set resultset = session.BuildResultSet(querydef)
resultset.Execute 

status =resultset.MoveNext
Do While status = AD_SUCCESS 
   choices.AddItem resultSetObj.GetColumnValue(1) 
Loop 

' revert to original session "Context"
session.SetHookSeesAllUsers( curHookSeesAllUsers )

End Sub

Perl

sub project_ChoiceList 
{
    my($fieldname) = @_;
    my @choices;
    # $fieldname as string scalar
    # @choices as string array
    # record type name is Defect
    # field name is Project

    # start building a query of the users 
    my $session = $entity->GetSession();
    my ($curHooksSeesAllUsers);

# store current "Context"
    $curHooksSeesAllUsers=$session->GetHookSeesAllUsers();

# set to "User Context"
    $session->SetHookSeesAllUsers(0);

    my ($queryDefObj, $resultSetObj);

    $queryDefObj = $session->BuildQuery("Project");

    # have the query return the desired
    # field of the user object(s)
    $queryDefObj->BuildField("Name");
    $resultSetObj = $session->BuildResultSet($queryDefObj);

    # run it
    $resultSetObj->Execute();

    # add each value in the returned column to the choicelist
    while
     ($resultSetObj->MoveNext() == $CQPerlExt::CQ_SUCCESS) {
         push(@choices,$resultSetObj->GetColumnValue(1));
    }

# revert to original session "Context"
    $session->SetHookSeesAllUsers($curHooksSeesAllUsers);

    return @choices;
}

Comentarios