Un concepteur de schéma peut masquer certaines actions pour les utilisateurs
qui ne possèdent pas le droit d'effectuer une action spécifique.
Les actions d'un schéma peuvent s'afficher dans ClearQuest, même si un utilisateur ne possède pas
le droit d'effectuer toutes les actions. Un concepteur de schéma peut masquer
les actions contrôlées par un point d'ancrage de contrôle d'accès. Les actions
masquées pour l'utilisateur ne s'affichent pas dans les menus Modifier, Changer l'état
ou Utilitaires du client ClearQuest.
Le masquage d'une action est déterminé par la valeur spécifiée dans
Contrôle
d'accès.
- Si Contrôle d'accès est défini sur Tous les utilisateurs,
l'action n'est pas masquée car tous les utilisateurs sont autorisés à accéder à
l'action.
- Si Contrôle d'accès est défini sur Groupes d'utilisateurs,
l'action est visible pour les utilisateurs membres des groupes spécifiés.
- Si Contrôle d'accès est défini sur SCRIPTS,
l'action peut ou non être masquée pour l'utilisateur, selon la valeur
de la propriété de schéma HIDE_ACTIONS. Par défaut,
l'action est affichée.
Masquage d'actions pour le contrôle d'accès SCRIPTS : propriété de schéma
HIDE_ACTIONS
Tout d'abord, le schéma doit être activé pour masquer les actions.
Exécutez la commande packageutil pour définir la propriété de schéma HIDE_ACTIONS
sur 1. La propriété de schéma HIDE_ACTIONS est
définie sur la dernière version du schéma. Le format de la commande
est le suivant :
packageutil setproperty –dbset <dbset> <user> <password> <schema>
HIDE_ACTIONS 1
Pour désactiver le masquage des
actions, définissez la propriété de schéma
HIDE_ACTIONS sur
0.
Remarque : La performance d'affichage du formulaire d'enregistrement peut être affectée en définissant
la valeur de la variable de session HIDE_ACTIONS sur 1. Les
points d'ancrage de contrôle d'accès pour toutes les actions de l'enregistrement sont exécutés pour déterminer
si l'action doit être affichée pour l'utilisateur. Si le schéma possède un
grand nombre d'actions, ou si le script du point d'ancrage de contrôle d'accès est
lent, l'utilisateur s'aperçoit que le formulaire d'enregistrement se charge lentement.
Variable de session ratl_GetLegalAction
Lorsque
la propriété de schéma
HIDE_ACTIONS est définie sur 1 pour masquer
les actions et que
Contrôle d'accès est défini sur
SCRIPTS,
le point d'ancrage de contrôle d'accès peut être appelé pour déterminer si le nom de l'action
doit être masqué pour l'utilisateur dans les menus du client ClearQuest ou pour vérifier si
l'utilisateur est autorisé à effectuer l'action. Le concepteur de schéma peut personnaliser
le point d'ancrage pour vérifier la valeur de la variable de session
ratl_GetLegalAction,
qui indique pourquoi le point d'ancrage est appelé.
- Si la valeur de ratl_GetLegalAction correspond
au nom affiché de l'enregistrement en cours, le point d'ancrage est appelé pour
déterminer si l'action doit être masquée. Le point d'ancrage renvoie une valeur
de 0 si le nom d'action doit être masqué. Le point d'ancrage renvoie une valeur
de 1 si le nom d'action doit être affiché.
- Si la valeur de ratl_GetLegalAction ne correspond pas
au nom affiché de l'enregistrement en cours, le point d'ancrage est appelé
pour déterminer si l'utilisateur est autorisé à exécuter cette action. L'action
a été sélectionnée et est exécutée si le point d'ancrage de contrôle d'accès renvoie
une valeur de 1. Même si le nom d'action est masqué pour cet utilisateur dans
les menus du client ClearQuest,
l'action peut être appelée par un point d'ancrage imbriqué ou un script externe.
Le client ClearQuest
affiche un message d'erreur générique indiquant que cette action n'est pas autorisée
si le point d'ancrage de contrôle d'accès de l'action renvoie 0. Le point d'ancrage peut également
afficher un message d'erreur plus descriptif en transmettant les informations
à une fonction Perl die() ou à une méthode VBScript Err.Raise().
Le message peut contenir des informations sur une précondition
non réalisée ou sur la raison pour laquelle l'utilisateur ne possède pas le droit d'exécuter l'action.
Exemple
L'exemple Perl suivant présente
la personnalisation du point d'ancrage pour décider si l'action est masquée ou
non. Vous pouvez également écrire ce type de point d'ancrage de contrôle d'accès avec 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
Rendez-vous sur YouTube, Support d'IBM® Rational, pour
en savoir plus sur le masquage d'actions.