Fixed it by refactoring validate_email, so it can be used without checking the ban table and email-taken