< Anterior | Siguiente >

Inicio de sesión en una base de datos de usuario

Una vez haya creado un objeto Session, puede obtener una lista de las bases de datos accesibles y, a continuación, debe proporcionar credenciales para iniciar la sesión en una base de datos de usuario.
Para proteger las bases de datos de los usuarios no autorizados, debe iniciar la sesión en una base de datos antes de acceder a sus registros. Para enganches, esta autenticación de usuario se gestiona automáticamente con la aplicación cliente de Rational ClearQuest. Sin embargo, las aplicaciones externas deben iniciar la sesión de modo programático por medio del objeto Session.
Para determinar en qué bases de datos iniciar la sesión, y efectuar el inicio de sesión, siga los pasos que se indican a continuación:
  1. Obtenga una lista de las bases de datos asociadas a un repositorio de esquemas llamando al método GetAccessibleDatabases del objeto Session. Este método devuelve una recopilación de objetos DatabaseDesc, cada uno de los cuales contiene información sobre una única base de datos de usuario.
  2. Utilice métodos del objeto DatabaseDesc para obtener información específica de la base de datos como, por ejemplo, el nombre de una base de datos o el conjunto de bases de datos (un repositorio de esquemas y sus bases de datos asociadas) a las que pertenece una base de datos.
  3. Inicie la sesión en una base de datos llamando al método UserLogon del objeto Session.
El método UserLogon toma cuatro argumentos.
$CQsession->UserLogon(login_name, password, database_name, database_set_name); 
Todos los argumentos son series: Por ejemplo:
$CQSession->UserLogon("admin", "", "SAMPL", ""); 

En el siguiente ejemplo de código, un usuario (admin) obtiene las bases de datos accesibles e inicia la sesión en una base de datos denominada perl2:
require CQPerlExt; 
$CQsession = CQSession::Build();  

#Start a Rational ClearQuest session 
$sessionObj = CQSession::Build(); 

#Get a list of accessible databases 
$databases = $sessionObj->GetAccessibleDatabases("MASTR", "admin", ""); 
$count = $databases->Count(); 

$sessionObj->UserLogon("admin", "", "perl2", "");  

#For each accessible database, 
# get database name and login as joe with password gh36ak3: 
for($x=0;$x<$count;$x++)
   { 
     $db = $databases->Item($x); 
     $dbName = $db->GetDatabaseName(); 
     # Logon to the database 
     $sessionObj->UserLogon( "joe", "gh36ak3", $dbName, "" ); 
     #... 
   } 

# You can also ise the GetSessionDatabase method rather than the GetAccessibleDatabases method
$dbDesc = $sessionObj->GetSessionDatabase();  

# The GetSessionDatabase method returns information about the database that is being accessed 
# in the current session. This method differs from the GetAccessibleDatabases method in that it 
# returns the DatabaseDescription object associated with the current session. You can only call
# this method after the user has logged in to a particular database.


print "DB name = ", $dbDesc->GetDatabaseName(), "\n";  
print "DB set name = ", $dbDesc->GetDatabaseSetName(), "\n";  
print "DB connect string = ", $dbDesc->GetDatabaseConnectString(), "\n";  
print "User login name = ", $sessionObj->GetUserLoginName(), "\n";  
print "User full name = ", $sessionObj->GetUserFullName(), "\n";  
print "User email = ", $sessionObj->GetUserEmail(), "\n";  
print "User phone = ", $sessionObj->GetUserPhone(), "\n";  
print "Misc user info = ", $sessionObj->GetUserMiscInfo(), "\n";  
print "User groups: \n";  
$userGroups = $sessionObj->GetUserGroups();  
if (!@$userGroups) 
     {  # Code to handle if no user groups exist 
        print "This user does not belong to any groups\n"; 
     }  
else 
     {  # Print out all groups 
        foreach $groupname (@$userGroups) 
             { print "Group $groupname\n"; }
     }  
CQSession::Unbuild($sessionObj); 

Punto de comprobación de la lección

Ahora que ha aprendido a utilizar la API de ClearQuest para obtener una sesión e iniciar la sesión en una base de datos, puede empezar a aprender a realizar casos de uso reales del cliente de ClearQuest, como por ejemplo ejecutar y crear consultas, gráficos e informes, y ver, modificar y crear registros.
< Anterior | Siguiente >

Comentarios