/** * returns int * 0 - success * 1 - wrong email * 2 - any error */ public function createUser(User $user, \Symfony\Component\Security\Core\Encoder\EncoderFactory $ef) { if ($this->em->getRepository("ErikUserBundle:User")->findBy(array("email" => $user->getEmail()))) { return 1; } $encoder = $ef->getEncoder($user); $password = $encoder->encodePassword($user->getPassword(), $user->getSalt()); $user->setPassword($password); $user->setActive(true); $user->setBlocked(false); $user->addRole($this->em->getReference("ErikUserBundle:Role", Role::ROLE_USER)); $this->em->persist($user); $this->em->flush(); return $user->getId() > 0 ? 0 : 2; }