public function load(ObjectManager $manager) { $userAdmin = new User(); // Attribution des attributs $userAdmin->setRoles(array('ROLE_ADMIN')); $userAdmin->setUsername('admin'); $userAdmin->setMail('*****@*****.**'); // Encodage du mot de passe $encoder = $this->container->get('security.password_encoder'); $encoded = $encoder->encodePassword($userAdmin, 'admin'); $userAdmin->setPassword($encoded); // Enregistrement sur la BDD $manager->persist($userAdmin); $manager->flush(); $this->addReference('user_admin', $userAdmin); $user = new User(); // Attribution des attributs $user->setRoles(array('ROLE_USER')); $user->setUsername('user'); $user->setMail('*****@*****.**'); // Encodage du mot de passe $encoder = $this->container->get('security.password_encoder'); $encoded = $encoder->encodePassword($user, 'user'); $user->setPassword($encoded); // Enregistrement sur la BDD $manager->persist($user); $manager->flush(); $this->addReference("user", $user); }
public function inscriptionAction(Request $request) { // Récupération des données envoyées par le formulaire d'inscription $request = $this->container->get('request_stack')->getCurrentRequest(); $username = $request->request->get('username'); $password = $request->request->get('password'); $password2 = $request->request->get('password2'); $mail = $request->request->get('mail'); // Récupérations des users de la base de données // pour comparer l'existant $repository = $this->getDoctrine()->getRepository('MQUserBundle:User'); $users = $repository->findAll(); $userDejaUtilise = false; $mailDelaUtilise = false; foreach ($users as $userCourant) { if ($userCourant->getUsername() == $username) { $userDejaUtilise = true; } if ($mail == $userCourant->getMail()) { $mailDelaUtilise = true; } } // On vérifie si le login n'est pas déjà utilisé if ($userDejaUtilise) { return $this->render('MQQuiziBundle:Default:index.html.twig', array('error_inscription' => 'Utilisateur déjà utilisé')); } else { // On vérifie que les mots de passes sont les même if ($password != $password2) { return $this->render('MQQuiziBundle:Default:index.html.twig', array('error_inscription' => 'Mots de passe différents')); } else { // On vérifie le format du mail if (!filter_var($mail, FILTER_VALIDATE_EMAIL)) { return $this->render("MQQuiziBundle:Default:index.html.twig", array('error_inscription' => 'Format du mail incorrect : ****@***.**')); } else { // On vérifie le mail n'est pas déjà utilisé if ($mailDelaUtilise) { return $this->render("MQQuiziBundle:Default:index.html.twig", array('error_inscription' => 'Mail déjà utilisé')); } else { // Création de l'utilisateur $user = new User(); // Attribution des attributs $user->setRoles(array('ROLE_USER')); $user->setUsername($username); $user->setMail($mail); // Encodage du mot de passe $encoder = $this->container->get('security.password_encoder'); $encoded = $encoder->encodePassword($user, $password); $user->setPassword($encoded); // Enregistrement sur la BDD $em = $this->getDoctrine()->getManager(); $em->persist($user); $em->flush(); if (!$user) { throw new UsernameNotFoundException("User not found"); } else { $token = new UsernamePasswordToken($user, null, "main", $user->getRoles()); $this->get("security.context")->setToken($token); // Log le user inscrit $request = $this->get("request"); $event = new InteractiveLoginEvent($request, $token); $this->get("event_dispatcher")->dispatch("security.interactive_login", $event); } return $this->redirect($this->generateUrl('mq_quizi_homepage')); } } } return $this->render("MQQuiziBundle:Default:index.html.twig"); } }
/** * {@inheritDoc} */ public function setRoles($roles) { $this->__initializer__ && $this->__initializer__->__invoke($this, 'setRoles', array($roles)); return parent::setRoles($roles); }