/** * Enforces that the given user will have an username * @param \FOS\UserBundle\Model\UserInterface $user */ public function enforceUsername(UserInterface $user) { $current = $user->getUsernameCanonical(); if (is_null($current) || strlen($current) == 0) { $email = explode('@', $user->getEmailCanonical(), 2); $username = $email[0]; if (!UsernameValidator::isUsernameValid($username)) { $username = UsernameValidator::getValidUsername(); } $newUsername = $this->getNextAvailableUsername($username); $user->setUsername($newUsername); $this->updateCanonicalFields($user); } }