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