public function login($email, $password) { $userData = $this->getUserByEmail($email); if ($userData && $userData['active'] == '1') { $encryptedPassword = UserFactory::encryptPassword($password); if ($encryptedPassword == $userData['password']) { $email = $userData['email']; $id = $userData['id']; $name = $userData['name']; $password = $userData['password']; $active = $userData['active']; switch ($userData['id_user_type']) { case UserTypeEnum::UserAdminType: UserFactory::$user = new UserAdmin($email, $id, $name, $password, $active); break; case UserTypeEnum::UserPublisherType: UserFactory::$user = new UserPublisher($email, $id, $name, $password, $active); break; case UserTypeEnum::UserGeneralType: UserFactory::$user = new UserGeneral($email, $id, $name, $password, $active); break; } UserFactory::$loggedIn = true; return UserFactory::$user; } else { // no coinciden el password ingresado con el password registrado return false; } } else { // no se encuentra ningun usuario con el mail ingresado return null; } }