/** * {@inheritdoc} */ public function add(User $user) { $manager = $this->getEntityManager(); $roleRepository = $this->getEntityManager()->getRepository('SEN_User:Role'); $roles = array_map(function (Role $role) use($roleRepository) { return $roleRepository->findOneBy(['name' => (string) $role]); }, $user->getRoles()); $userCopy = new User($user->getCredentials(), $user->getSimpleProfile(), $user->getFollowing(), $roles, $user->getActivation()); $manager->persist($userCopy); $manager->flush(); $created = $this->findOneByName($user->getCredentials()->getUsername()); return $created; }