codeigniter registro activo ¿dónde o dónde?

Estoy usando Active Record en CodeIgniter. Estoy confundido sobre qué enfoque debería tomar. Actualmente, nuestro sistema de inicio de sesión permite al usuario utilizar el nombre de usuario / correo electrónico para el inicio de sesión junto con la contraseña. Pero mi registro activo actual parece permitir que el usuario inicie sesión si elige usar el correo electrónico + sin contraseña.

Ahora mismo esta es mi 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 muestra:

Nombre de usuario:prueb | Contraseña:pasa | Resultado:ÉxitNombre de usuario:prueb | Contraseña:vací | Resultado:Ha falladNombre de usuario: test @ domain.com | Contraseña:pasa | Resultado:ÉxitNombre de usuario: test @ domain.com | Contraseña:vací | Resultado:Éxit

La cuarta entrada de prueba debe serHa fallad como resultado, pero parece que registra al usuario incluso si la contraseña está vacía.

Respuestas a la pregunta(6)

Su respuesta a la pregunta