IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Changer le mot de passe [2.x]


Sujet :

Symfony PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2012
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Changer le mot de passe
    Bonjour, je rencontre un petit probleme sur symfony2 j'ai créé ma propre méthode permettant de modifier un user ainsi que son mot de passe (j'utilise le bundle FOSUser), j'arrive à encoder le mot de passe en sha512, les changements se font bien en base de données mais lorsque j'essai de me loguer le mot de passe n'est pas reconnu. savez vous d'ou pourrait venir le probleme svp??

    voici ma méthode:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
    public function modifierAction($id)
        {
            $em = $this->getDoctrine()->getManager();
     
     
            $utilisateur = $em->getRepository('AcmeUserBundle:User');
            $user = $utilisateur ->find($id);
     
            if($user === null)
            {
                throw $this->createNotFoundException('User [id='.$id.'] inexistant.');
            }
     
     
                    $form = $this->createFormBuilder($user)
     
                                         ->add('username', 'text', array('label' => 'Login'))   
                                         ->add('email', 'email')
                                         ->add('password', 'repeated', array(
                                                    'type' => 'password',
                                                    'options' => array('translation_domain' => 'FOSUserBundle'),
                                                    'first_options' => array('label' => 'form.new_password'),
                                                    'second_options' => array('label' => 'form.new_password_confirmation'),
                                                    'invalid_message' => 'fos_user.password.mismatch',
                                                ))
                                         ->add('nom')
                                         ->add('prenom')
                                         ->add('telephone')
                                         ->getForm();
     
                    $oldpass = $user->getPassword();
                    echo 'ancien: '.$oldpass;
     
            $request = $this->get('request');
            if($request->getMethod() == 'POST')
            {
     
     
             $password = $form->get('password')->getData();
     
                $form->bind($request);
     
                if($form->isValid())
                {
                  $user->setPlainPassword($password);                      
                    $em->flush();
     
                    $this->get('session')
                            ->getFlashBag()
                            ->add('message', 'Le statut "' . $user->getPrenom() .' ' . $user->getNom() . '" a bien été modifié');
     
                    return $this->redirect($this->generateUrl('acmeUser_liste'));
                }
            }
     
            return $this->render('AcmeUserBundle:Admin:modifierUser.html.twig', array(
                'form' => $form->createView(),
                'user'  => $user
            ));
     
     
        }
    Merci d'avance pour vos réponse.

  2. #2
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    il me semble qu'il y a aussi le champs SALT.... à remplir également.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2012
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Salut, et merci pour la réponse, mais comment remplir le champ salt??

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2012
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Personne n'aurait une idée svp??

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2012
    Messages : 6
    Points : 5
    Points
    5
    Par défaut [Résolu]
    Jai finalement trouver une solution je ne sais pas si c'est une bonne méthode mais cela répond à ce que je voulais je laisse le code ou cas ou une personne rencontrerait le mm problem:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
     
     
    public function modifierAction($id)
        {
            $em = $this->getDoctrine()->getManager();
     
            $utilisateur = $em->getRepository('AcmeUserBundle:User');
            $user = $utilisateur ->find($id);
     
            if($user === null)
            {
                throw $this->createNotFoundException('User [id='.$id.'] inexistant.');
            }
     
     
                    $form = $this->createFormBuilder($user)
     
                                         ->add('username', 'text', array('label' => 'Login'))   
                                         ->add('email', 'email')
                                         ->add('password', 'repeated'
                                                 , array(
                                                    'type' => 'password',
                                                    'first_options' => array('label' => 'Nouveau message'),
                                                    'second_options' => array('label' => 'Vérification'),
                                                    'invalid_message' => 'fos_user.password.mismatch',
                                                ))
                                         ->add('nom')
                                         ->add('prenom')
                                         ->add('telephone')
                                         ->getForm();
     
     
            $request = $this->get('request');
            if($request->getMethod() == 'POST')
            {
                $passwordForm =$form->get('password')->getData();
     
                $form->bind($request);
     
                if($form->isValid())
                {
                 $userManager = $this->container->get('fos_user.user_manager');
     
                $user->setPlainPassword($user->getPassword());
     
                $encoder  = $this->get('security.encoder_factory')->getEncoder($user);
                $password = $encoder->encodePassword($user->getPlainPassword(), $user->getSalt());
                $user->setPassword($password);
     
                //     echo 'PlainPass : ' . $user->getPlainPassword().'<hr>';
               //      echo 'Pass : ' .$user->getPassword();
              //       die;
     
                    $userManager->updateUser($user, true);
     
                    $this->get('session')
                            ->getFlashBag()
                            ->add('message', 'L\'utilisateur "' . $user->getPrenom() .' ' . $user->getNom() . '" a bien été modifié');
     
                    return $this->redirect($this->generateUrl('acmeUser_liste'));
                }
            }
     
            return $this->render('AcmeUserBundle:Admin:modifierUser.html.twig', array(
                'form' => $form->createView(),
                'user'  => $user
            ));
     
     
        }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Changer un mot de passe
    Par kabikou dans le forum Access
    Réponses: 15
    Dernier message: 16/09/2005, 21h56
  2. [IB] Autoriser 1 user à changer son mot de passe
    Par qi130 dans le forum InterBase
    Réponses: 7
    Dernier message: 01/02/2005, 15h09
  3. Comment changer le mot de passe sous Interbase
    Par ETOKA dans le forum InterBase
    Réponses: 3
    Dernier message: 05/08/2004, 12h25
  4. changer le mot de passe d'un utilisateur
    Par Rdjedidene dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 08/06/2004, 14h56
  5. [VB6] [ADO] [Access] Changer le mot de passe
    Par dlpxlid dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 03/03/2003, 10h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo