pdo = $pdo; } /** * Localiza um usuário através do endereço de e-mail. * * Retorna os dados necessários para o processo * de autenticação. * * Retorna null quando o usuário não existe. */ public function buscarPorEmail(string $email): ?array { $sql = " SELECT id, nome, email, senha, perfil, ativo FROM usuarios WHERE email = :email LIMIT 1 "; $stmt = $this->pdo->prepare($sql); $stmt->execute([ 'email' => $email ]); $usuario = $stmt->fetch(); if ($usuario === false) { return null; } return $usuario; } /** * Atualiza o hash da senha de um usuário. * * Utilizado quando password_needs_rehash() * identificar que o algoritmo ou os parâmetros * utilizados para criar o hash foram atualizados. */ public function atualizarSenha( int $id, string $novoHash ): bool { $sql = " UPDATE usuarios SET senha = :senha WHERE id = :id "; $stmt = $this->pdo->prepare($sql); return $stmt->execute([ 'senha' => $novoHash, 'id' => $id ]); } }