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


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