Ejemplo de enganche de permiso de campo

Utilice los enganches de permiso para definir el comportamiento de un campo en tiempo de ejecución. Por lo general, el comportamiento del campo se define utilizando la cuadrícula Comportamientos de Designer. Los valores que entre se aplican por igual a todos los miembros de un grupo de usuarios. Con un permiso de enganche, puede especificar el comportamiento de un campo con más precisión. En el ejemplo siguiente, si el usuario actual pertenece al grupo managers (gestores) y no pertenece al grupo engineering (ingeniería), este enganche convierte el campo en opcional. Si el usuario no está, como mínimo, en un grupo, el enganche da error.

Nota: Puesto que los enganches se ejecutan con privilegios de administrador, este ejemplo funciona aunque el comportamiento de los campos sea de sólo lectura.

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