Mercredi, 31. Janvier 2007

PermaLinkInfos utilisateur

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 :
  • 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.
 Commentairesv

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.


 Saisir un commentaire^















Se souvenir de mes informations    

A propos

Ce site est destiné à faire connaître mon travail d'expert Domino indépendant et à vous faire partager mes analyses, découvertes et humeurs autour de Lotus Domino et bien d'autres sujets.

Hébergé sur ma Dedibox

Bonne visite.
A propos de moi

Prénom: Julien
Nom: Bottemanne
Adresse: Toulenne (33)

Originaire du Lot et Garonne, j'habite depuis maintenant 2 4 ans en Gironde. J'aime énormément cette région et je savoure avec ma femme et mes deux filles sa qualité de vie.

email - julien@domlike.net

 Monthly Archive
 Search
Contrat

Tous le contenu de ce site est mis à disposition sous un contrat Creative Commons.

Contrat Creative Commons

Paypal

RSS et autres

Lotus Domino ND6 RSS News Feed RSS Comments Feed Geo URL RSS Validator Blog Admin Lotus Geek Open Notes Picture Database OpenNTF BlogSphere