권한 후크를 사용하여 런타임 시 필드의 동작을 정의하십시오. 일반적으로 디자이너의 Behaviors 눈금을 사용하여 필드의 동작을 정의합니다. 입력한 값은 사용자 그룹의 모든 멤버에게 동일하게 적용됩니다. 권한 후크를 사용하면 필드의 동작을 더 세밀하게 지정할 수 있습니다. 다음 예제에서 현재 사용자가 관리자 그룹에 속해 있고 엔지니어링 그룹에는 속하지 않은 경우 이 후크는 필드를 선택적 필드로 만듭니다. 사용자가 적어도 하나의 그룹에 속하지 않는 경우에는 후크가 실패합니다.
Function field1_Permission(fieldname, username)
' fieldname As String
' username As String
' field_Permission As Long
' entityDef = defect
' Assign the default return value
field1_Permission = AD_MANDATORY
set curSession = GetSession
userGroups = curSession.GetUserGroups()
for each group in userGroups
if group = "managers" And group <> "engineers" Then
field1_Permission = AD_OPTIONAL
End If
Next
End Function
sub field1_Permission {
my($fieldname, $username) = @_;
my $result;
# $fieldname as string scalar
# $username as string scalar
# $result as long scalar
# entityDef is Defect
# Assign the default return value
$result = $CQPerlExt::CQ_MANDATORY;
$curSession = $entity->GetSession();
$userGroups = $curSession->GetUserGroups();
foreach $group (@$userGroups) {
if ($group eq "managers" && $group ne "engineers") {
$result = $CQPerlExt::CQ_OPTIONAL;
}
}
return $result;
}