detecter quand utilisateur change/ré-initilise son mots passe

Réduire
Ce sujet est fermé.
X
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • #16
    Re : detecter quand utilisateur change/ré-initilise son mots passe

    il s'agit d'un intranet fais maison.
    La bdd de l'intranet c'est des fichiers XML... Jfusion me semble pas être adapté.

    Cela dit je pense pouvoir faire le plugin, car comme le code existant et appeler include, il me semble possible de pouvoir appeler la fonction puisqu'il est dans toutes les pages ?

    Commentaire


    • #17
      Re : detecter quand utilisateur change/ré-initilise son mots passe

      J'ai 2 questions concernant le plugin, dans la doc que vous m'avez donner:

      Le fichier cocoateaddtext.xml se termine par:
      1) </extension n'y a t'il pas une erreur ? cela devrait pas plutôt être </extension> ?

      2) ou je mets mon plugin ? dans plugin/content ou dans plugin/user ? ce qui me semblerait plus logique, merci d'avance pour ces explications.

      Commentaire


      • #18
        Re : detecter quand utilisateur change/ré-initilise son mots passe

        Le plugin ne semble pas marcher, voici mon code:

        Code:
        <?php
        
        // no direct access
        defined( '_JEXEC' ) or die( 'Restricted access' ); 
        
        class plgUser<userssync> extends JPlugin
        {
            /**
            * Load the language file on instantiation. Note this is only available in Joomla 3.1 and higher.
            * If you want to support 3.0 series you must override the constructor
            *
            * @var    boolean
            * @since  3.1
            */
            protected $autoloadLanguage = true;
        
            /**
            * Method is called before user data is stored in the database
            *
            * @param  array    $oldUser  Holds the old user data.
            * @param  boolean  $isnew    True if a new user is stored.
            * @param  array    $newUser  Holds the new user data.
            *
            * @return   boolean
            *
            */
            public function onUserBeforeSave($oldUser, $isnew, $newUser)
            {
        		echo "<script>Alert('test'); </script>";
                if (!$isnew && $newUser['password_clear'] !== "")
                {
                    // code à exécuter quand une modification de mot de passe va avoir lieu
                }
                return true;    
            }
        }

        Le plugin est dans /plugin/user
        L'installation ces bien passé (dans le menu discover)

        Normalement des que je change une info (email, nom...) je devrait normalement avoir une alert('test'); ?

        Commentaire


        • #19
          Re : detecter quand utilisateur change/ré-initilise son mots passe

          Bonjour sazearte,

          Le fichier cocoateaddtext.xml se termine par:
          1) </extension n'y a t'il pas une erreur ? cela devrait pas plutôt être </extension> ?
          C'est effectivement une faute de frappe, il devrait y avoir </extension>.

          2) ou je mets mon plugin ? dans plugin/content ou dans plugin/user ? ce qui me semblerait plus logique, merci d'avance pour ces explications.
          Les événements de Joomla sont organisés en groupes. L'événement onUserBeforeSave fait partie du groupe user. Voir la liste des événements par groupe : https://docs.joomla.org/Plugin/Events.

          Pour résumer les deux réponses, les balises "extension" vont ressembler à :
          Code:
          <extension version="3.1" type="plugin" group="user" method="upgrade">
          . . .
          </extension>
          Amicalement,
          Rajoz

          Commentaire


          • #20
            Re : detecter quand utilisateur change/ré-initilise son mots passe

            La fonction onUserBeforeSave ne semble pas marcher/pas s'activer, ai-je fais une erreur ?

            Commentaire


            • #21
              Re : detecter quand utilisateur change/ré-initilise son mots passe

              Bonjour sazearte,

              Le plugin ne semble pas marcher, voici mon code:
              . . .
              class plgUser<userssync> extends JPlugin
              Dans mon exemple il fallait remplacer <PluginName> par le nom du plugin. Si le nom du plugin est userssync, le code doit être :
              Code PHP:
              class plgUserUserssync extends JPlugin 
              Le plugin est dans /plugin/user
              L'installation ces bien passé (dans le menu discover)
              Les fichiers doivent s'appeler userssync.xml et userssync.php et être dans plugins/user/userssync
              Perso, j'utilise le zip et l'installation habituelle d'une extension plutôt que la découverte. Cela facilite la mise à jour : pas besoin de FTP et le nom de mes zip intègre le suivi de version ex: plg_userssync_1.0.zip

              Amicalement,
              Rajoz

              Commentaire


              • #22
                Re : detecter quand utilisateur change/ré-initilise son mots passe

                Bonjour sazearte,

                J'ai eu un peu de temps (vive les dimanches) pour créer une démo d'un plugin utilisant l'événement onUserBeforeSave.

                Les paramètres qui m'ont paru utiles pour une synchro sont affichés dans la zone de message par la fonction JFactory::getApplication()->enqueueMessage('....')
                Ces messages de test seront bien sûr à supprimer dans la version finale du plugin.

                Mode d'emploi :
                • installer par "Archive à envoyer"
                • activer le plugin plg_user_userssync
                • tester en frontend la création d'un nouvel utilisateur
                • tester en frontend la modification du profil d'un utilisateur : nouveau nom, nouvel email, nouveau mot de passe

                Amicalement,
                Rajoz
                Fichiers joints

                Commentaire


                • #23
                  Re : detecter quand utilisateur change/ré-initilise son mots passe

                  Merci pour votre aide, mais il n'ya rien qui se passe quand je change mon mots de passe.

                  Normalement je devrais avoir le message:
                  Une modification de mot de passe va être enregistrée

                  Dans tous les cas des "----------" devrait des que je modifie quoique se soit non ?

                  Commentaire


                  • #24
                    Re : detecter quand utilisateur change/ré-initilise son mots passe

                    Bonjour sazearte,

                    Le plugin fonctionne correctement sur mon site de test (J! 3.4.0 fr) avec informations affichées dans la position des messages de Joomla au-dessus de "Profil enregistré".

                    Le plugin est-il activé ?
                    La création / modification d’utilisateur est-elle faite en frontend
                    Le message standard de Joomla "Profil enregistré" apparaît-il ?

                    Amicalement,
                    Rajoz

                    Commentaire


                    • #25
                      Re : detecter quand utilisateur change/ré-initilise son mots passe

                      Je vais dans index.php/component/users/profile

                      Puis je modifie mes infos (mots de passe, adresse mail...), j'ai bien le message "Profil enregistré", mais c'est tout.
                      Le message "Une modification de mot de passe va être enregistrée" n'apparait pas, n'y "----------".

                      J'utilise Joomla 3.4, la dernière maj donc.

                      Commentaire


                      • #26
                        Re : detecter quand utilisateur change/ré-initilise son mots passe

                        Ou aller vous pour modifier les infos de profils ?

                        Commentaire


                        • #27
                          Re : detecter quand utilisateur change/ré-initilise son mots passe

                          C'est bon sa marche, c'était mon ancien plugin qui créait un conflit, je les désinstaller et sa marche.

                          Merci !
                          Dernière édition par sazearte à 03/03/2015, 10h29

                          Commentaire


                          • #28
                            Re : detecter quand utilisateur change/ré-initilise son mots passe

                            Sa marche tellement bien que j'ai décider d'améliorer le système actuel, j'ai 2 question:

                            1) Si l'utilisateur oublie son mots de passe, si il clique sur réinitialiser le mots de passe( il reçoit un mail puis le change) sa marche ?

                            2) Es ce que je peut directement appliquer ce code pour un nouvel utilisateur ?, si je mets juste un if($isnew) {...}
                            Cela fonctionne t'il pareil ?

                            Commentaire


                            • #29
                              Re : detecter quand utilisateur change/ré-initilise son mots passe

                              Bonjour sazearte,

                              1) Si l'utilisateur oublie son mots de passe, si il clique sur réinitialiser le mots de passe( il reçoit un mail puis le change) sa marche ?
                              Vérifié, ça marche aussi, voici un exemple du message affiché :
                              Message
                              ----------
                              Action = UPDATE
                              Name = R.Rajoz | New = R.Rajoz
                              Username = Rajoz | New = Rajoz
                              Email = xxx@xxx.com | New = xxx@xxx.com
                              Password = xxxxxxxxxx | New = yyyyyyyyyy
                              Password_clear = | New = newpassword
                              ----------
                              Une modification de mot de passe va être enregistrée
                              ----------
                              Réinitialisation du mot de passe réussie. Vous pouvez maintenant vous connecter au site.

                              2) Es ce que je peut directement appliquer ce code pour un nouvel utilisateur ?, si je mets juste un if($isnew) {...} Cela fonctionne t'il pareil ?
                              Pour un nouvel utilisateur (en frontend : Créer un compte) voici le type de message :
                              Message
                              ----------
                              Action = CREATE
                              Name = | New = R.Rajoz
                              Username = | New = Rajoz
                              Email = | New = xxx@xxx.com
                              Password = | New = xxxxxxxxxx
                              Password_clear = | New = myPassword
                              ----------
                              Votre compte a été créé et un lien d'activation vous a été adressé par e-mail à l'adresse que vous avez donnée. Notez que vous devrez activer ce compte en cliquant sur le lien d'activation avant de pouvoir vous connecter sur le site.

                              Note : Je mets ici les exemples de messages tels qu'affichés avec le plugin de test pour démontrer le contenu des différentes variables. Dans le plugin final, il faudra enlever les affichages et simplement utiliser le résultat des variables.
                              Par exemple, la variable $isnew (boolean) est affichée dans le plugin de test par "Action = CREATE" ou "Action = "UPDATE". Le test if($isnew) peut être utilisé pour une création et if(!$isnew) pour une mise à jour.

                              Amicalement,
                              Rajoz

                              Commentaire


                              • #30
                                Re : detecter quand utilisateur change/ré-initilise son mots passe

                                C'est bien ce que je pensait, merci.

                                Commentaire

                                Annonce

                                Réduire
                                Aucune annonce pour le moment.

                                Partenaire de l'association

                                Réduire

                                Hébergeur Web PlanetHoster
                                Travaille ...
                                X