Un designer di schemi può nascondere le azioni agli utenti che non dispongono dell'autorizzazione per eseguire l'azione.
Le azioni in uno schema possono essere visualizzate in ClearQuest
anche se un utente non dispone dell'autorizzazione per eseguire tutte le azioni. Un designer
di schemi può nascondere le azioni che sono controllate da un hook di controllo accessi azione. Le azioni
che vengono nascoste all'utente non vengono visualizzate nei menu Modifica, Modifica stato o Programmi di utilità nel client
ClearQuest.
Se un'azione viene nascosta o meno viene determinato dal valore specificato in
Controllo accesso.
- Se Controllo accesso è impostato su Tutti gli utenti,
l'azione non viene nascosta perché tutti gli utenti sono autorizzati ad accedere all'azione.
- Se Controllo accesso è impostato su Gruppi utente,
l'azione è visibile agli utenti che sono membri dei gruppi specificati.
- Se Controllo accesso è impostato su SCRIPTS, l'azione
può o non può essere nascosta all'utente a seconda del valore della proprietà dello schema HIDE_ACTIONS. Per impostazione
predefinita l'azione viene visualizzata.
Come nascondere le azioni per il controllo accesso SCRIPTS: proprietà dello schema HIDE_ACTIONS
In
primo luogo, lo schema deve essere abilitato per nascondere le azioni.
Eseguire
il comando packageutil per impostare la proprietà dello schema
HIDE_ACTIONS su 1. La proprietà dello schema HIDE_ACTIONS è impostata
sull'ultima versione dello schema. Il formato del comando è il seguente:
packageutil setproperty –dbset <dbset> <user> <password> <schema>
HIDE_ACTIONS 1
Per disabilitare la possibilità di
nascondere le azioni, impostare la proprietà dello schema
HIDE_ACTIONS su 0.
Nota: le
prestazioni di visualizzazione del modulo del record possono essere influenzate impostando
il valore della variabile della sessione HIDE_ACTIONS su 1. Gli hook di controllo accesso
per tutte le azioni nel record verranno eseguiti per determinare se l'azione deve essere visualizzata all'utente. Se lo schema ha molte
azioni o se l'elaborazione dello script dell'hook di controllo accessi è lenta, l'utente può percepire che il caricamento del modulo del record è lenta.
Variabile della sessione ratl_GetLegalAction
Quando
la proprietà dello schema
HIDE_ACTIONS è impostata
su 1 per nascondere le azioni e l'opzione
Controllo accesso è impostata su
SCRIPTS, l'hook di controllo accessi
può essere richiamato per determinare se il nome dell'azione deve essere nascosto all'utente nel menu del client
ClearQuest o per verificare se all'utente è consentito eseguire l'azione. Il
designer di schemi può personalizzare gli hook per controllare il valore della variabile della
sessione
ratl_GetLegalAction, che indica il motivo per cui viene richiamato l'hook.
- Se il valore di ratl_GetLegalAction corrisponde al nome di
visualizzazione del record corrente, l'hook viene richiamato per determinare se l'azione deve essere nascosta. L'hook
restituisce un valore 0 se il nome dell'azione deve essere nascosto. L'hook
restituisce un valore 1 se il nome dell'azione deve essere visualizzato.
- Se il valore di ratl_GetLegalAction non corrisponde al nome di
visualizzazione del record corrente, l'hook viene richiamato per determinare se all'utente è consentito eseguire questa azione. L'azione
è stata selezionata e verrà eseguita se l'hook di controllo accessi restituisce un valore di 1.
Anche se il nome dell'azione è stato nascosto a questo utente nei menu del client
ClearQuest, l'azione può essere richiamata da un hook nidificato o da uno script esterno.
Il client ClearQuest visualizza un messaggio di errore generico
per indicare che questa azione non è consentita se l'hook controllo accessi dell'azione restituisce 0.
In alternativa, l'hook può visualizzare un messaggio di errore più descrittivo trasferendo le informazioni
a una funzione die() Perl o a un metodo Err.Raise() VBScript.
Il
messaggio può contenere informazioni su una precondizione che non è soddisfatta o sul perché l'utente non dispone
dell'autorizzazione per eseguire l'azione.
Esempio
Il seguente esempio Perl mostra come personalizzare l'hook per decidere se l'azione viene nascosta o meno. È
anche possibile scrivere questo tipo di hook di controllo accessi con VBScript.
# Start User Code
# Set $result to 1 if the user has permission to perform
# this action, otherwise set it to 0.
$result = 0;
if ($session->IsUserSuperUser()) {
# A super user can always do this action.
$result = 1;
}
else {
my $GLA = $session->GetNameValue("ratl_GetLegalAction");
my $myName = $entity->GetDisplayName();
if ($GLA eq $myName) {
# This hook was called for hide action.
# To hide the action, return 0 by uncommenting the following line
# $result = 0
# and then delete or comment out the $result = 1 below
#
# Or, to always show the action so the user will see
# a detailed message if they try to run it.
$result = 1;
}
else {
my $user = $session->GetUserLoginName();
my $owner = $entity->GetFieldStringValue("Owner");
if ($user ne $owner) {
die "Only the owner can perform this action.";
}
$result = 1;
}
}
# End User Code
Per ulteriori informazioni su come nascondere le azioni,
accedere al canale
IBM®
Rational Support YouTube.