From c489d97bb7ac17dec116d3ab92672c1884809fef Mon Sep 17 00:00:00 2001 From: Thiago Rocha Date: Mon, 29 Sep 2014 10:35:22 -0300 Subject: [PATCH] Correção da coleta do usuário no linux. --- src/cacic_computer.cpp | 12 +++++++++++- src/cacic_computer.h | 3 +++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/cacic_computer.cpp b/src/cacic_computer.cpp index 7f0ada1..50cfcb3 100644 --- a/src/cacic_computer.cpp +++ b/src/cacic_computer.cpp @@ -45,6 +45,7 @@ QJsonObject CACIC_Computer::toJsonObject() QJsonObject json; QJsonArray network; int count = 1; +qDebug() << QString::fromStdString(this->usuario); json["usuario"] = QJsonValue::fromVariant(QString::fromStdString(this->usuario)); json["operatingSystem"] = this->oOperatingSystem.toJsonObject(); foreach(QVariantMap auxMap, this->getNetworkInterface()){ @@ -62,16 +63,25 @@ QJsonObject CACIC_Computer::toJsonObject() * retorna o usuario logado no sistema. (erro, retorna o usuário que está executando.) */ std::string CACIC_Computer::pegarUsu(){ +#if defined(Q_OS_WINDOWS) QString text; QStringList environment = QProcessEnvironment::systemEnvironment().toStringList(); foreach (text, environment) { if (text.contains("USER=" , Qt::CaseInsensitive) || text.contains("USERNAME=", Qt::CaseInsensitive) ){ QStringList split = text.split("="); -// qDebug() << split[1]; + return split[1].toStdString(); } } + +#elif defined(Q_OS_LINUX) + + QString user = console("who").split(" ")[0]; + return user.toStdString(); + +#endif + return "0"; } /* diff --git a/src/cacic_computer.h b/src/cacic_computer.h index 576c42c..dabc725 100644 --- a/src/cacic_computer.h +++ b/src/cacic_computer.h @@ -8,6 +8,7 @@ #include #include #include "operatingsystem.h" +#include "console.h" class CACIC_Computer { @@ -26,6 +27,8 @@ private: int pegarOS(); std::string pegarUsu(); + ConsoleObject console; + QList networkInterface; std::string usuario; -- libgit2 0.21.2