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