We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 34078
    • 76 Posts
    Bonjour,

    Je suis face à un problème plutôt ennuyeux avec un plugin lancé sur un OnUserSave. Ça fait des heures que j'essaye de comprendre ce qui cloche mais sans résultats.

    J'ai besoin de connaitre les groupes auxquels appartient l'utilisateur sauvegardé mais que ce soit avec isMember ou getUserGroupNames, MODx ne semble tenir compte que du premier groupe auquel il appartient. Ainsi, si mon utilisateur est à la fois Admin et Rédacteur, MODx ne renverra que Admin.

    Voilà un plugin simulant mon problème. Créez un utilisateur, dans l'onglet Autorisations d'accès, ajoutez le à 2 groupes et sauvegardez. Dans le log de MODx, vous devriez voir que le 1er groupe.

    // Debug
    $modx->setDebug(E_ALL & ~E_NOTICE); // sets error_reporting to everything except NOTICE remarks
    $modx->setLogLevel(modX::LOG_LEVEL_DEBUG);
    
    // Catch Events
    $event = $modx->event->name;
    switch($event) 
    {
      case 'OnUserSave':
        $modx->log(modX::LOG_LEVEL_DEBUG, print_r($user->getUserGroupNames(),true));
      break;
    }


    Si quelqu'un a une idée, il est le bienvenu !!
    Pour info, j'utilise MODx Revo 2.1.3-pl.
    • Bonjour Ben,

      Pas de soucis sur une 2.2 de mon côté (pas de 2.1.3 sous la main, désolé), avec
      $e = $modx->event->name;
      
      switch ($e) {
          case 'OnUserSave':
              $modx->log(modX::LOG_LEVEL_ERROR, print_r($user->getUserGroupNames(),true));
              break;
      
          default:
              break;
      }
      
      return '';
      


      (au passage merci pour la syntaxe print_r je j'utilisais toujours avec false en argument - et qui donc ne me renvoyait jamais le tableau!)
        • 34078
        • 76 Posts
        Merci romain pour ta réponse mais j'ai testé avec la 2.2 (au passage j'adore le champ de recherche des ressources) et j'ai le même souci.

        On dirait un problème de cache de session. J'ai beau changer les Autorisations d'accès de l'utilisateur, le plugin ne tient pas compte des modifs.

        Par contre si entre temps je me déconnecte du manager et que je me reconnecte, là le plugin va fonctionner ... la première fois. Après, une fois la session créée (je pense) les valeurs ne seront plus actualisées.

        Quelqu'un d'autre a ce problème ? (ou pas d'ailleurs)