Вы не знаете про оператор ||? В чем проблема то? Хоть пример того, что пытаетесь делать...путей много. Почему не пользуетесь шаблонной реализацией? Там лишь добавить || и все готово. В чем профит вашего range?
Попробуйте в LoginForm, в getUser искать или по логину или по email.
Настройте соответственно правила валидации, чтобы не ругался на отсутствие одного из параметров, на логин, если вместо логина email и на email, если вместо email указан логин.
Максим Тимофеев: Если rules настроены криво - то да. В логине запрещены все спец символы по обыкновению. Но даже если и иначе то при регистрации надо проверять на unique оба этих поля, чтобы ваш сценарий не произошел. Так что тут дело не в этом коде, а в остальном.