public function newAction(Request $request) { $form = $this->get('form.factory')->create(new FormType\User\CreateUserType()); $form->handleRequest($request); if ($form->isValid()) { $data = $form->getData(); $em = $this->getDoctrine()->getManager(); # Persisting identity principal $principalidentity = new UserPrincipal(); $principalidentity->setDisplayname($data['displayname']); $principalidentity->setUri('principals/' . $data['username']); $principalidentity->setEmail($data['email']); $em->persist($principalidentity); # Persisting user $user = new User(); $user->setUsername($data['username']); $user->setPassword($this->get('security.encoder_factory')->getEncoder($user)->encodePassword($data['password'], $user->getSalt())); foreach ($data['roles'] as $role) { $user->addRole($role); } $em->persist($user); $em->flush(); $this->get('session')->getFlashBag()->add('notice', 'User <i class="fa fa-user"></i> <strong>' . htmlspecialchars($user->getUsername()) . '</strong> has been created.'); return $this->redirect($this->generateUrl('baikal_admin_user_list')); } return $this->render('BaikalAdminBundle:User:form.html.twig', array('form' => $form->createView())); }
public function createAndPersistUser($username, $password) { # Persisting identity principal $principalidentity = new UserPrincipal(); $principalidentity->setDisplayname(ucwords($username)); $principalidentity->setUri('principals/' . $username); $principalidentity->setEmail('*****@*****.**'); $this->entityManager->persist($principalidentity); # Persisting user $user = new User(); $user->setUsername($username); # Not setting salt; handled by the user entity $user->setPassword($this->passwordencoder->encodePassword($password, $user->getSalt())); $user->addRole('ROLE_ADMIN'); $user->addRole('ROLE_FRONTEND_USER'); $this->entityManager->persist($user); $this->entityManager->flush(); return $user; }