許可フックを使用して、実行時のフィールドの動作を定義することができます。 通常、フィールドの動作は 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; }