작업공간 보안 예제

다음 코드 예제에서는 작업공간 보안 메소드(Folder, Folders, Permission 및 Permissions 오브젝트 포함)를 사용하여 Public 및 Personal 폴더에 적용되는 작업공간 보안 권한을 검색하는 방법에 대해 설명합니다. 이 예제는 ClearQuest API를 사용하여 작업공간 폴더 보안 정책을 작성하고 현재 설정 정보를 검색하는 방법에 대한 일반적인 개념을 제공합니다.

Perl

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

피드백