Utilizzare gli hook di autorizzazione per definire il funzionamento di un campo durante il runtime. Di norma, il funzionamento del campo viene definito utilizzando la griglia Behaviors nel Designer. I valori immessi dall'utente si applicano equamente a tutti in membri di un gruppo di utenti. Tramite un hook di autorizzazione, è possibile specificare il funzionamento di un campo con maggiore precisione. Nell'esempio che segue, se l'utente corrente appartiene al gruppo manager e non a quello engineering, questo hook rende il campo facoltativo. Se l'utente non fa parte di almeno uno dei due gruppi, l'hook ha esito negativo.
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; }