권한 후크를 사용하여 런타임 시 필드의 동작을 정의하십시오. 일반적으로 Designer의 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; }