필드 권한 후크 예제

권한 후크를 사용하여 런타임 시 필드의 동작을 정의하십시오. 일반적으로 디자이너의 Behaviors 눈금을 사용하여 필드의 동작을 정의합니다. 입력한 값은 사용자 그룹의 모든 멤버에게 동일하게 적용됩니다. 권한 후크를 사용하면 필드의 동작을 더 세밀하게 지정할 수 있습니다. 다음 예제에서 현재 사용자가 관리자 그룹에 속해 있고 엔지니어링 그룹에는 속하지 않은 경우 이 후크는 필드를 선택적 필드로 만듭니다. 사용자가 적어도 하나의 그룹에 속하지 않는 경우에는 후크가 실패합니다.

주: 후크는 관리자 권한으로 실행되기 때문에 이 예제는 필드의 동작이 읽기 전용인 경우에도 동작합니다.

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

피드백