protected function execute(InputInterface $input, OutputInterface $output) { $em = $this->container->getDoctrine()->getManager($input->getOption('em')); $user = new User(); $email = $input->getArgument('email'); if ($em->getRepository('CmsAuthentication:User')->findOneByEmail($email) !== null) { throw new \Exception(sprintf('User with email [%s] already exists.', $email)); } $user->setEmail($email); $user->setEmailConfirmed(true); $user->setActive(true); $user->setLogin($email); $user->setName($input->getArgument('name') ? $input->getArgument('name') : $user->getLogin()); $user->setRoles(array('ROLE_USER')); if ($input->getArgument('group')) { $group = $em->getRepository('CmsAuthentication:Group')->findOneByName($input->getArgument('group')); if ($group) { $user->setGroup($group); } else { throw new \Exception(sprintf('Group [%s] does not exist.', $input->getArgument('group'))); } } $encoded = $this->container['cms_authentication.encoder_factory']->getEncoder($user)->encodePassword($input->getArgument('password'), $user->getSalt()); $user->setPassword($encoded); $em->persist($user); $em->flush(); $output->writeln('User created!'); }