From b0c78dde76c6081206d769a835c089af5a3df789 Mon Sep 17 00:00:00 2001 From: groche97 Date: Tue, 26 May 2020 01:37:34 +0200 Subject: [PATCH] Finish remove user implementation --- ServidorTFG.pro.user | 2 +- conexion_ssl.cpp | 1 + data_acces.h | 1 + msql_acces.cpp | 7 +++++++ msql_acces.h | 1 + session_manager.cpp | 11 +++++++++++ session_manager.h | 1 + 7 files changed, 23 insertions(+), 1 deletion(-) diff --git a/ServidorTFG.pro.user b/ServidorTFG.pro.user index 73f1366..67a19e5 100644 --- a/ServidorTFG.pro.user +++ b/ServidorTFG.pro.user @@ -1,6 +1,6 @@ - + EnvironmentId diff --git a/conexion_ssl.cpp b/conexion_ssl.cpp index 5e79848..ede114e 100644 --- a/conexion_ssl.cpp +++ b/conexion_ssl.cpp @@ -42,6 +42,7 @@ void conexion_ssl::start_server(){ while(1) { struct sockaddr_in addr; uint len = sizeof(addr); + int client = accept(sock, (struct sockaddr*)&addr, &len); std::thread t_client(conexion_client,ctx , client); t_client.detach(); diff --git a/data_acces.h b/data_acces.h index 0d5205f..29c17a9 100644 --- a/data_acces.h +++ b/data_acces.h @@ -15,6 +15,7 @@ public: virtual void write_remove(std::string)=0; virtual bool get_package_exists(std::string package)=0; virtual void create_user(std::string user, std::string pass, bool admin)=0; + virtual void remove_user(std::string user)=0; }; #endif // DATA_ACCES_H diff --git a/msql_acces.cpp b/msql_acces.cpp index f3002be..c3558a4 100644 --- a/msql_acces.cpp +++ b/msql_acces.cpp @@ -97,3 +97,10 @@ void msql_acces::create_user(std::string user, std::string pass, bool admin){ pstmt->setBoolean(3,admin); sql::ResultSet *res = pstmt->executeQuery(); } + +void msql_acces::remove_user(std::string user){ + sql::PreparedStatement *pstmt = + con->prepareStatement("delete from users where username=?"); + pstmt->setString(1,user); + pstmt->executeUpdate(); +} diff --git a/msql_acces.h b/msql_acces.h index 2bf1318..ad96bce 100644 --- a/msql_acces.h +++ b/msql_acces.h @@ -19,6 +19,7 @@ public: void write_remove(std::string); bool get_package_exists(std::string package); void create_user(std::string user, std::string pass, bool admin); + void remove_user(std::string user); private: sql::Connection *con; sql::Driver *driver; diff --git a/session_manager.cpp b/session_manager.cpp index 5908e8c..fb171f9 100644 --- a/session_manager.cpp +++ b/session_manager.cpp @@ -42,6 +42,8 @@ void session_manager::start_dialog(){ this->send_user_info(); }else if(strcmp(buffer,"cusr")==0){ this->create_user(); + }else if(strcmp(buffer,"rusr")==0){ + this->remove_user(); }else if((strcmp(buffer,"exit")==0)||(n_read==0)){ break; } @@ -135,6 +137,8 @@ void session_manager::create_user(){ char* user=new char[256]; char* pass=new char[256]; char* admin=new char[256]; + //basura + this->read_data(user, 256); this->read_data(user, 256); this->read_data(pass, 256); this->read_data(admin, 256); @@ -144,6 +148,13 @@ void session_manager::create_user(){ delete [] (admin); } +void session_manager::remove_user(){ + char *buffer=new char[256]; + this->read_data(buffer,256); + this->read_data(buffer,256); + this->data->remove_user(std::string(buffer)); +} + 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 b91fa6c..9559e96 100644 --- a/session_manager.h +++ b/session_manager.h @@ -13,6 +13,7 @@ public: void send_user_info(); bool validate_pass(); void create_user(); + void remove_user(); private: std::string appli_command(char comand[], char* n_package); virtual int read_data(char* input, int size);