Esempio di hook di autorizzazione di campo

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.

Nota: poiché gli hook vengono eseguiti con i privilegi di amministratore, questo esempio è valido anche se il funzionamento dei campi è di sola lettura.

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

Feedback