GetLegalAccessibleActionDefNames

Descrizione

Restituisce un elenco di azioni accessibili per un dato record (oggetto Entity) valido per l'utente e possibile da eseguire se esiste un hook di controllo accessi definito.

L'elenco restituito da questo metodo contiene soltanto le azioni che possono essere eseguite sull'oggetto Entity nel relativo stato corrente tramite l'utente corrente. È possibile utilizzare questo metodo prima di richiamare il metodo EditEntity dell'oggetto Session per determinare le azioni valide che un utente può eseguire sul record.

Oltre ad elencare solo le azioni consentite basate sullo stato, l'elenco restituito è limitato anche alle azioni che un utente può eseguire.

Questo metodo è simile a GetLegalActionDefNames, ma determina anche se l'utente dispone dei permessi per eseguire un'azione tramite la verifica di ogni azione valida per gli hook di controllo accessi e se un utente supera o meno il controllo di accesso. Se i blocchi del controllo di accesso bloccano l'utente, l'azione non viene restituita all'utente nell'elenco delle azioni restituite.

Se questo metodo viene richiamato dall'interno di un hook, l'utente disporrà sempre dei permessi per eseguire qualsiasi azione valida per lo stato corrente del record.

Nota: questo metodo è disponibile nella versione 7.0.0.0.

Sintassi

VBScript

entity.GetLegalAccessibleActionDefNames 

Perl

$entity->GetLegalAccessibleActionDefNames(); 
Identificativo
Descrizione
entity
Un oggetto Entity che rappresenta un record di dati dell'utente. All'interno di un hook, se si omette questa parte della sintassi, viene utilizzato l'oggetto Entity corrispondente al record di dati corrente (solo VBScript).
Valore di ritorno
Per Visual Basic, viene restituito un valore Variant che contiene un array di stringhe. Ogni stringa contiene il nome di un'azione valida. Se non è possibile eseguire alcuna azione sull'oggetto Entity, il valore di ritorno è un valore Variant vuoto.

In Perl, un riferimento ad un array di stringhe.

Esempi

VBScript

Dim EntityObj As OAdEntity
Set sessionObj = GetSession
Set EntityObj = sessionObj.GetEntity("Defect", "SAMPL00000001")
entityDefName = EntityObj.GetEntityDefName
Set entityDefObj = sessionObj.GetEntityDef(entityDefName)

' Get the legal accessible actions 
actionDefList = EntityObj.GetLegalAccessibleActionDefNames 

If IsArray(actionDefList) Then 
For Each actionDef in actionDefList 
        msg2 = msg2 & " " & actionDef
    Next
   End If 
MsgBox "Legal accessible actions are: " & msg2

Perl

$sessionobj = $entity->GetSession();

$entitydefname = $entity->GetEntityDefName();

$entitydefobj = $sessionobj->GetEntityDef($entitydefname);

# Search for a legal action with which to modify the record 

$actiondeflist = $entity->GetLegalAccessibleActionDefNames();

foreach $actionname(@$actiondeflist)
   {
 $actiondeftype = $entitydefobj->GetActionDefType($actionname);

 if ($actiondeftype eq $CQPerlExt::CQ_MODIFY)

  {

  $sessionobj->EditEntity($entity,$actionname);

  }

 } 

Feedback