From 0b1bb18f8343347bf13508f543d8ca94cede6a3a Mon Sep 17 00:00:00 2001 From: groche97 Date: Wed, 20 May 2020 00:10:05 +0200 Subject: [PATCH] add read users list --- .qmake.stash | 23 +++++++++++++++++++++++ ServidorTFG.pro.user | 2 +- data_acces.h | 1 + msql_acces.cpp | 21 +++++++++++++++++++++ msql_acces.h | 1 + session_manager.cpp | 12 +++++++++++- session_manager.h | 1 + 7 files changed, 59 insertions(+), 2 deletions(-) create mode 100644 .qmake.stash diff --git a/.qmake.stash b/.qmake.stash new file mode 100644 index 0000000..ba4eadd --- /dev/null +++ b/.qmake.stash @@ -0,0 +1,23 @@ +QMAKE_CXX.QT_COMPILER_STDCXX = 201402L +QMAKE_CXX.QMAKE_GCC_MAJOR_VERSION = 9 +QMAKE_CXX.QMAKE_GCC_MINOR_VERSION = 3 +QMAKE_CXX.QMAKE_GCC_PATCH_VERSION = 0 +QMAKE_CXX.COMPILER_MACROS = \ + QT_COMPILER_STDCXX \ + QMAKE_GCC_MAJOR_VERSION \ + QMAKE_GCC_MINOR_VERSION \ + QMAKE_GCC_PATCH_VERSION +QMAKE_CXX.INCDIRS = \ + /usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/include/g++-v9 \ + /usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/include/g++-v9/x86_64-pc-linux-gnu \ + /usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/include/g++-v9/backward \ + /usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/include \ + /usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/include-fixed \ + /usr/include +QMAKE_CXX.LIBDIRS = \ + /usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0 \ + /usr/lib64 \ + /lib64 \ + /usr/x86_64-pc-linux-gnu/lib \ + /usr/lib \ + /lib diff --git a/ServidorTFG.pro.user b/ServidorTFG.pro.user index d43094f..c55a96e 100644 --- a/ServidorTFG.pro.user +++ b/ServidorTFG.pro.user @@ -1,6 +1,6 @@ - + EnvironmentId diff --git a/data_acces.h b/data_acces.h index 946057b..9de06cf 100644 --- a/data_acces.h +++ b/data_acces.h @@ -10,6 +10,7 @@ public: data_acces(); virtual std::string get_passwd(std::string username) = 0; virtual std::list get_pinfo()=0; + virtual std::list get_uinfo()=0; virtual void write_install(std::string package, std::string user)=0; virtual void write_remove(std::string)=0; virtual bool get_package_exists(std::string package)=0; diff --git a/msql_acces.cpp b/msql_acces.cpp index c3beda8..519110a 100644 --- a/msql_acces.cpp +++ b/msql_acces.cpp @@ -43,6 +43,27 @@ std::list msql_acces::get_pinfo(){ return ret; } +std::list msql_acces::get_uinfo(){ + sql::PreparedStatement *pstmt = + con->prepareStatement("select username,admin from users"); + sql::ResultSet *res = pstmt->executeQuery(); + std::list ret; + std::string aux; + while(res->next()){ + aux=""; + aux += res->getString(1); + //aux += ":"+res->getString(2); + if(res->getBoolean(2)){ + aux+=":t"; + }else{ + aux+=":f"; + } + ret.push_back(aux); + } + delete res; + return ret; +} + void msql_acces::write_install(std::string package, std::string user){ sql::PreparedStatement *pstmt = con->prepareStatement("insert into packages(name,user) values(?,(select id from users where username=?))"); diff --git a/msql_acces.h b/msql_acces.h index 290deaf..d0f72c5 100644 --- a/msql_acces.h +++ b/msql_acces.h @@ -14,6 +14,7 @@ public: msql_acces(); std::string get_passwd(std::string username); std::list get_pinfo(); + std::list get_uinfo(); void write_install(std::string package, std::string user); void write_remove(std::string); bool get_package_exists(std::string package); diff --git a/session_manager.cpp b/session_manager.cpp index 92b8ee7..e1e02af 100644 --- a/session_manager.cpp +++ b/session_manager.cpp @@ -38,7 +38,9 @@ void session_manager::start_dialog(){ this->send_information(); }else if(strcmp(buffer, "remv")==0){ this->remove(); - }else if(strcmp(buffer,"exit")){ + }else if(strcmp(buffer,"uinf")==0){ + this->send_user_info(); + }else if(strcmp(buffer,"exit")==0){ break; } } @@ -119,6 +121,14 @@ void session_manager::send_information(){ this->write_data("end:info"); } +void session_manager::send_user_info(){ + std::list lis=this->data->get_uinfo(); + for(std::string info : lis){ + this->write_data(info); + } + this->write_data("end:info"); +} + int session_manager::read_data(char* input, int size){ return read(this->fd, input, size); } diff --git a/session_manager.h b/session_manager.h index c8dcdd8..008096a 100644 --- a/session_manager.h +++ b/session_manager.h @@ -10,6 +10,7 @@ public: int execute(); int remove(); void send_information(); + void send_user_info(); bool validate_pass(); private: std::string appli_command(char comand[], char* n_package);