codeigniter registro ativo where, or_where?

Estou usando o Active Record no CodeIgniter. Estou confuso sobre qual abordagem devo adotar. Atualmente, nosso sistema de login permite que o usuário use nome de usuário / email para o login junto com a senha. Mas meu registro ativo atual parece permitir que o usuário faça login se optar por usar o email + sem senha.

Agora, esta é a minha consulta:

$this->db->select('id,level,email,username');
$this->db->where('email',$user);
$this->db->or_where('username',$user);
$this->db->where('password',$pass);
$query = $this->db->get('users');

if($query->num_rows>0)
  return TRUE;
else
  return FALSE;

Entradas de amostra:

Nome do usuário:test Senha:passa Resultado:SucessNome do usuário:test Senha:esvazia Resultado: FalhaNome do usuário: test @ domain.com Senha:passa Resultado:SucessNome do usuário: test @ domain.com Senha:esvazia Resultado:Sucess

A quarta entrada de teste deve ser Falha no resultado, mas parece que ele registra o usuário mesmo que a senha esteja vazi

questionAnswers(6)

yourAnswerToTheQuestion