un agent nomé "agtUserNameRole" avec "exécuter en temps qu'utilisateur web" coché avec le code suivant
- Code : Tout sélectionner
Dim Session As NotesSession
Dim vrValue As Variant
Dim Retour As String
On Error Goto ErreurHandle
Set Session = New NotesSession
Retour = "@UserRoles"
vrValue = Evaluate (Retour)
Retour = Session.EffectiveUserName
Forall value In vrValue
If Trim(Cstr(value))<>"" Then
Retour = Retour+":"+Trim(Cstr(value))
End If
End Forall
vrValue = Null
'Print "<Data>"+Retour+"</Data>"
Print "Content-Type: text/javascript"
Print "Cache-Control: private"
Print Retour
Exit Sub
ErreurHandle:
Msgbox "("+Cstr(Getthreadinfo (1))+" Call by "+Cstr(Getthreadinfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + Cstr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl),16," ERREUR !"
Exit Sub
et une petite fonction JS qui renvois un array avec en première valeur le nom canonique de l'utilisateur et ensuite les différent rôles du dis utilisateur
ATTENTION LA FONCTION FAIT UN APPEL SYNCHRONE ! => XHRequest.open("Get", urlRequeste , false);
- Code : Tout sélectionner
function userNameRole(server,pathfile){
if (server == "undefined" || server == null || server == "") {server="";}
if( pathfile == "undefined" || pathfile == null || pathfile == "" ){
//si la valeur est vide récupere le chemin de la base en cours
pathfile = (document.location.href).toLowerCase();
pathfile = pathfile.substring(pathfile.indexOf('/', pathfile.indexOf('://')+3)+1, pathfile.lastIndexOf('nsf')+3);
}
if( (pathfile) == "" ){alert("pathFile is empty");return "";}
var urlRequeste = server+"/"+pathfile+"/agtUserNameRole?OpenAgent"
var XHRequest;
if(window.XMLHttpRequest){
// Firefox et autres
XHRequest = new XMLHttpRequest();
if (XHRequest.overrideMimeType){XHRequest.overrideMimeType('text/xml')}
}else if(window.ActiveXObject){
// Internet Explorer
try { XHRequest = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e) {XHRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
}else{
//non supporté par le navigateur
alert("Ajax Error :\n XMLHttpRequest non supporté par le navigateur");
return "";
}
XHRequest.open("Get", urlRequeste , false);
XHRequest.send(null);
if (XHRequest.status == 200) {
//return XHRequest.responseText.substring(XHRequest.responseText.indexOf("<Data>")+6,XHRequest.responseText.indexOf("</Data>")).split(':');
return XHRequest.responseText.split(':');
}else{
alert("Ajax Error :\n" + XHRequest.statusText+"\n"+XHRequest.status+"\n"+urlRequeste);
return "";
}
}
les paramètres de la fonction userNameRole sont optionnelle, par défaut la fonction prend le serveur et la base en cours