fix sesion never end and implement create user funcionality
This commit is contained in:
parent
b8831c9e35
commit
2783e385a4
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE QtCreatorProject>
|
||||
<!-- Written by QtCreator 4.8.2, 2020-05-20T00:08:38. -->
|
||||
<!-- Written by QtCreator 4.8.2, 2020-05-20T23:51:30. -->
|
||||
<qtcreator>
|
||||
<data>
|
||||
<variable>EnvironmentId</variable>
|
||||
|
@ -14,6 +14,7 @@ public:
|
||||
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;
|
||||
virtual void create_user(std::string user, std::string pass, bool admin)=0;
|
||||
};
|
||||
|
||||
#endif // DATA_ACCES_H
|
||||
|
@ -89,3 +89,11 @@ bool msql_acces::get_package_exists(std::string package){
|
||||
|
||||
return ret>0;
|
||||
}
|
||||
|
||||
void msql_acces::create_user(std::string user, std::string pass, bool admin){
|
||||
sql::PreparedStatement *pstmt = con->prepareStatement("insert into users(username, passwd, admin) values(?, ?, ?)");
|
||||
pstmt->setString(1,user);
|
||||
pstmt->setString(2,pass);
|
||||
pstmt->setBoolean(3,admin);
|
||||
sql::ResultSet *res = pstmt->executeQuery();
|
||||
}
|
||||
|
@ -18,6 +18,7 @@ public:
|
||||
void write_install(std::string package, std::string user);
|
||||
void write_remove(std::string);
|
||||
bool get_package_exists(std::string package);
|
||||
void create_user(std::string user, std::string pass, bool admin);
|
||||
private:
|
||||
sql::Connection *con;
|
||||
sql::Driver *driver;
|
||||
|
@ -31,7 +31,7 @@ bool session_manager::validate_pass(){
|
||||
void session_manager::start_dialog(){
|
||||
char* buffer = new char[5];
|
||||
while(true){
|
||||
this->read_data(buffer,5);
|
||||
int n_read=this->read_data(buffer,5);
|
||||
if(strcmp(buffer, "exec")==0){
|
||||
this->execute();
|
||||
}else if(strcmp(buffer, "info")==0){
|
||||
@ -40,7 +40,9 @@ void session_manager::start_dialog(){
|
||||
this->remove();
|
||||
}else if(strcmp(buffer,"uinf")==0){
|
||||
this->send_user_info();
|
||||
}else if(strcmp(buffer,"exit")==0){
|
||||
}else if(strcmp(buffer,"cusr")==0){
|
||||
this->create_user();
|
||||
}else if((strcmp(buffer,"exit")==0)||(n_read==0)){
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -129,6 +131,19 @@ void session_manager::send_user_info(){
|
||||
this->write_data("end:info");
|
||||
}
|
||||
|
||||
void session_manager::create_user(){
|
||||
char* user=new char[256];
|
||||
char* pass=new char[256];
|
||||
char* admin=new char[256];
|
||||
this->read_data(user, 256);
|
||||
this->read_data(pass, 256);
|
||||
this->read_data(admin, 256);
|
||||
this->data->create_user(std::string(user), std::string(pass), admin[0]=='t');
|
||||
delete [] (user);
|
||||
delete [] (pass);
|
||||
delete [] (admin);
|
||||
}
|
||||
|
||||
int session_manager::read_data(char* input, int size){
|
||||
return read(this->fd, input, size);
|
||||
}
|
||||
|
@ -12,6 +12,7 @@ public:
|
||||
void send_information();
|
||||
void send_user_info();
|
||||
bool validate_pass();
|
||||
void create_user();
|
||||
private:
|
||||
std::string appli_command(char comand[], char* n_package);
|
||||
virtual int read_data(char* input, int size);
|
||||
|
Loading…
Reference in New Issue
Block a user