$usuarioRepository = new UsuarioRepository($pdo); $pdo->beginTransaction(); $senhaAntiga = $_POST['senha_antiga']; $usuario = new Usuario(); $usuario->setSenha($senhaAntiga); $usuario->setUsuario($usuarioAutenticado->getUsuario()); $id = $usuarioRepository->verificaSeTemUsuario($usuario); if ($_POST['senha'] != $_POST['senha_confirmar']) { throw new RegraDeNegocioException('As senhas não conferem!'); } $usuario->setSenha($_POST['senha']); $usuario->setId($id); $usuarioRepository->updateSenha($usuario); $auditoria = new Auditoria(); $auditoriaRepository = new AuditoriaRepository($pdo); // Auditoria $auditoria->setData(date('Y-m-d H:i:s')); $auditoria->setAcao(Auditoria::UPDATE); $auditoria->setObservacao('Tabela: Usuario - Id: ' . $usuario->getId() . " alterou a senha"); $auditoria->setEmpresa($usuarioAutenticado->getEmpresa()); $auditoria->setUsuario($usuarioAutenticado); $auditoriaRepository->add($auditoria); $pdo->commit(); $servicoDeMensagem->setMensagem(MensagemDoSistema::SUCESSO, 'Atualizado com sucesso'); redirect('alterar-senha'); } catch (Exception $ex) { if (isset($pdo) && $pdo->inTransaction()) { $pdo->rollBack(); } throw $ex; }