领测软件测试网
调用代码的一个例子,其是一个record script,名为RS_AccessControl:
sub Defect_RS_AccessControl {
my($result);
my($param) = @_;
# record type name is Defect
if (ref ($param) eq "CQEventObject") {
# add your CQEventObject parameter handling
code here
} elsif (ref (\$param) eq "SCALAR") {
$sessionObj = $entity->GetSession();
@params = split '\n',$param;
my $username = $params[2];
?$fieldInfo = $entity-
>GetFieldValue("Submitter");
$strSubmitterName = $fieldInfo-
>GetValue();
# test if the user belongs to group
"TestManager"
$userGroups = $sessionObj->GetUserGroups();
$FlagYes = "yes";
$FlagNo = "no";
$AuthorizedUserGroup1 = "TestManager";
$AuthorizedUserGroup2 = "SuperAdmin";
$flag = $FlagNo;
if (!@$userGroups) {
$flag = $FlagNo;
} else {
foreach $strAnGroup (@$userGroups) {
if ( ($strAnGroup eq $AuthorizedUserGroup1) ||
($strAnGroup eq
$AuthorizedUserGroup2) )
{
$flag = $FlagYes;
last;
}
}
}
# test if the user is same as the
submitter or belongs to group "TestManager"
if (( $username eq $strSubmitterName)||($flag eq $FlagYes)){
$result = 1;
} else {
$result = 0;
}
} else {
# add your handling code for other type parameters here, for example:
# die("Unknown parameter type");
}
return $result;
}
|
- 使用用户组修改ACL记录类型上的所有action的控制权限,如图14所示。
|
图14:设置控制权限 |
这显示了只有在"SuperAdmin"组中的成员可以对ACL记录类型操作。
- 检入schema,并将此涉及应用到你的用户数据库中。
- 最后,ClearQuest管理员需要手工地增加一些security context记录,这些记录与每个测试人员组关联在一起(图15)。
|
图15:security context记录 |
注释:在此设计中,ACL记录的名字应当与提交者的userid完全一样。例如,在图15中,如果一个提交者的userid是xiaming,那么相应的ACL记录的名字也是xiaming。
文章来源于领测软件测试网 https://www.ltesting.net/