許可フックを使用して、実行時のフィールドの動作を定義することができます。 通常、フィールドの動作は Designer の動作グリッドを使用して定義します。入力した値は、ユーザー グループのすべてのメンバに等しく適用されます。 許可フックを使用すると、フィールドの動作をより精密に指定できます。次の例では、現在のユーザーが、マネージャ グループに属していて、エンジニアリング グループに所属していない場合、このフックによりそのフィールドをオプションにします。ユーザーが少なくとも 1 つのグループに属していないと、フックは失敗します。
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;
}