El ejemplo de código siguiente ilustra cómo utilizar los métodos de seguridad de espacio de trabajo (incluidos métodos de los objetos Folder, Folders, Permission y Permissions) para recuperar los permisos de seguridad de espacio de trabajo aplicados a carpetas públicas y personales. Este ejemplo ofrece una idea general sobre cómo puede utilizar la API de ClearQuest para crear una política de seguridad de carpetas de espacio de trabajo y recuperar información sobre los valores actuales.
use strict;
require "CQPerlExt.pm";
################################
# Subroutines
sub get_access_description($)
{
my ($folder) = @_;
my $perm = $folder->GetPermission();
my $kind = $perm->GetKindName();
my $group = $perm->GetGroup($CQPerlExt::CQ_NAME_EXTEND_WHEN_NEEDED);
return "$kind for $group";
}
sub show_subfolders($$);
sub show_subfolders($$)
{
my ($folder, $indent) = @_;
my $name = $folder->GetName();
my $access = get_access_description($folder);
my $folders = $folder->GetSubfolders();
my $count = $folders->Count();
print $indent . "$name: $access\n";
for (my $i = 0; $i < $count; $i++) {
my $folder = $folders->Item($i);
show_subfolders($folder, $indent . "| ");
}
}
################################
# Main
my $session;
my $workspace;
my $PublicFolder;
my $PersonalFolder;
my $PublicFolderName;
my $PersonalFolderName;
if (scalar(@ARGV) != 4) {
die "ERROR: insufficient arguments; need username, password, database, dbset\n";
}
my ($username, $password, $database, $dbset) = @ARGV;
$session = CQSession::Build();
$session->UserLogon($username, $password, $database, $dbset);
$workspace = $session->GetWorkSpace();
$PublicFolder = $workspace->GetPublicFolder();
$PublicFolderName = $workspace->GetPublicFolderName();
show_subfolders($PublicFolder, "");
$PersonalFolder = $workspace->GetPersonalFolder();
$PersonalFolderName = $workspace->GetPersonalFolderName();
show_subfolders($PersonalFolder, "");
$session->Unbuild();
$session = undef;
# end Main