/** * Check if user is active and password matches * * @param EntityManager $em * @param User $user * @return User User class filled if success, new User otherwise. */ public function authenticate(EntityManager $em, User $user) { $criteria = array('email' => $user->getEmail(), 'active' => 1); $userDB = $em->getRepository('models\\Entities\\User')->findOneBy($criteria); return $userDB instanceof User && $userDB->getPassword() === $user->getPassword() ? $userDB : new User(); }