Récupération de l'utilisateur connecté en JS


A partir de Ametys 4.3

A partir de Ametys 4.3, il est possible (et recommandé) de récupérer l'utilisateur connecté en javascript en utilisant la fonction JS getAmetysUser.

Ceci permet par exemple d'afficher un bouton connexion et/ou un menu utilisateur sur des pages publiques et des pages pouvant être mises en page.

La fonction getAmetysUser s'utilise avec une fonction de callback. La fonction de callback reçoit en argument :

  • soit null si aucun utilisateur est connecté
  • soit un objet JSON représentant l'utilisateur connecté (avec son login, nom, prénom, mail, ...)

Voici ci-dessous un exemple de code HTML/JS qui affiche un bouton "Se connecter" si aucun utilisateur est connecté, ou un menu avec le nom de l'utilisateur et un bouton de déconnexion.

<ul class="ametys-header-profile-menu"> 
    <li id="userConnectItem" style="display: none"> 
        <a class="ametys-header-connect-btn" href="{ametys:siteUriPrefix()}/_authenticate?requestedURL={ametys:siteUriPrefix()}/{$lang}/{$sitemap//page[@sitemap:current = 'true']/@sitemap:path}.html">Se connecter</a> 
    </li> 
    <li id="userMenuItem" style="display: none"> 
        <a id="profileMenuInvoker" data-dropdown-target="#profileMenu"> 
            <span class="ametys-header-profile-menu__item-text"></span> 
            <span class="ametys-dropdown-invoker__icon ametys-icon-angle-down"></span> 
        </a> 
        <div id="profileMenu"> 
            <ul class="ametys-dropdown-menu"> 
                <li class="ametys-dropdown-menu__item"> 
                    <a href="{ametys:siteUriPrefix()}/logout.html?requestedURL={ametys:siteUriPrefix()}/{$lang}/index.html">Se déconnecter</a> 
                </li> 
            </ul> 
        </div> 
    </li> 
</ul> 

<script type="text/javascript"> 
    $j(document).ready(function() { 
        var _getAmetysUserCb = function(user) 
        { 
            if (user) 
            { 
                $j('#userMenuItem').find('.ametys-header-profile-menu__item-text').html(user.fullname); 
                $j('#userMenuItem').show(); 
                $j('#userConnectItem').hide(); 
            } 
            else 
            { 
                $j('#userMenuItem').hide(); 
                $j('#userConnectItem').show(); 
            } 
        } 

        getAmetysUser(_getAmetysUserCb); 
    }); 
</script> 
Retour en haut