フィールド許可フック例

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

注: フックは管理者権限で実行されるので、この例は、フィールドの動作が読み取り専用の場合でも動作します。

VBScript

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

Perl

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;
} 

フィードバック