Mercredi, 31. Janvier 2007
Lorsque l’on développe une application web sous Domino et qu’arrive le temps du recettage, on est souvent sollicité pour des problèmes de personnalisation du type :
« Monsieur Jeannot n’a pas les liens vers ses applications métier au niveau de la page d’accueil. »
« Il manque l'onglet aministration à Madame Dubus»
«etc...»
La personnalisation d’une application est très souvent liée :
En V6+, pour connaître l’accès d’un utilisateur à une base, on peut utiliser le bouton « accés effectif » dans l’onglet général de la LCA. Mais il y a plusieurs problèmes à l’utilisation de cette fonctionnalité :
Bref, pour faciliter le travail du support pendant la période de recettage, j’insère un petit bout de code JS qui affiche toutes les informations nécessaire lorsque l’utilisateur fait un alt-u:
Lorsque l’on voit arriver une fiche d’anomalie avec cette boite de dialogue en copie d’écran, on sait que notre travail sera vraiment facilité.
Voici donc le code à insérer dans votre masque /page :
Voici le code des 3 valeurs calculés :
Valeur calculée 1 : @Name([CN];@UserName)
Valeur calculée 2 : @Subset(@UserAccess( @DbName );1)
Valeur calculée 3 : @Implode(@UserNamesList;", ")
Bien sur le code est brut et vous pouvez le customiser en fonction de vos besoins et de l’application.
« Monsieur Jeannot n’a pas les liens vers ses applications métier au niveau de la page d’accueil. »
« Il manque l'onglet aministration à Madame Dubus»
«etc...»
La personnalisation d’une application est très souvent liée :
- A des rôles
- A l’appartenance à certains groupes
- A un niveau d’accès
- Les trois à la foi
En V6+, pour connaître l’accès d’un utilisateur à une base, on peut utiliser le bouton « accés effectif » dans l’onglet général de la LCA. Mais il y a plusieurs problèmes à l’utilisation de cette fonctionnalité :
- On n’est pas toujours en V6.
- On n’est pas toujours gestionnaire de la base
- On n’est jamais certain que les droits de l'utilisateur n’aient pas changés depuis le signalement du bug.
- On ne sait pas si l’utilisateur disposait du bon login lorsqu’il a constaté l’anomalie.
Bref, pour faciliter le travail du support pendant la période de recettage, j’insère un petit bout de code JS qui affiche toutes les informations nécessaire lorsque l’utilisateur fait un alt-u:
Lorsque l’on voit arriver une fiche d’anomalie avec cette boite de dialogue en copie d’écran, on sait que notre travail sera vraiment facilité.
Voici donc le code à insérer dans votre masque /page :
<script language="JavaScript" type="text/javascript">
nn=(document.layers)?true:false; ie=(document.all)?true:false;
function keyDown(e) {
var evt=(e)?e:(window.event)?window.event:null;
if(evt){ var key=(evt.charCode)?evt.charCode: ((evt.keyCode)?evt.keyCode:((evt.which)?evt.which:0));
if(key=="85" && toucheAlt(e)==true ) showUserInfo();
}
}
// retourne vrai si la touche Alt a ete enfoncee avec la derniere touche
function toucheAlt(e) {
if (window.event) {
return (window.event.altKey);
} else {
return (e.altKey || (e.modifiers % 2));
}
}
document.onkeydown=keyDown;
if(nn) document.captureEvents(Event.KEYDOWN);
function showUserInfo(){
var userName = '<Valeur calculée 1>';
var userAccessLevel = '<Valeur calculée 2>'
var userRolesAndGroup = '<Valeur calculée 3>';
alert('User name : '+userName+'\n\nUser access level : '+userAccessLevel+'\n\nUser roles & groups : \n'+userRolesAndGroup );
}
</script>
Voici le code des 3 valeurs calculés :
Valeur calculée 1 : @Name([CN];@UserName)
Valeur calculée 2 : @Subset(@UserAccess( @DbName );1)
Valeur calculée 3 : @Implode(@UserNamesList;", ")
Bien sur le code est brut et vous pouvez le customiser en fonction de vos besoins et de l’application.
1. YoGi
01/02/2007 10:20:05
Ton truc est intéressant, on est confronté a des problématiques identiques ici (web uniquement) et j'utilise à ce jour une page qui contient mot pour mot les mêmes formules que toi afin de connaitre les droits d'un utilisateur donné :)
le problème est qu'il faut 1) connaitre les identifiants de l'utilisateur 2) laisser une backdoor pour "usurper" son identité (mal) 3) lui demander de le faire (dans la pratique délicat).
l'un des petit dev que je dois faire prochainement consiste justement à choisir un utilisateur dans l'annuaire et d'afficher le @usernamelist le concernant.




- 









