Replaced std::string and std::vectors in the user module aswell.

This commit is contained in:
Relintai 2021-11-01 19:14:55 +01:00
parent e977de894a
commit c86ed59dd6
4 changed files with 40 additions and 39 deletions

View File

@ -19,7 +19,7 @@ void UserController::handle_request_default(Request *request) {
} }
} }
const std::string &segment = request->get_current_path_segment(); const String &segment = request->get_current_path_segment();
if (segment == "") { if (segment == "") {
handle_login_request_default(request); handle_login_request_default(request);
@ -270,7 +270,7 @@ void UserController::render_login_success(Request *request) {
} }
void UserController::handle_request(Ref<User> &user, Request *request) { void UserController::handle_request(Ref<User> &user, Request *request) {
const std::string &segment = request->get_current_path_segment(); const String &segment = request->get_current_path_segment();
if (segment == "") { if (segment == "") {
handle_main_page_request(user, request); handle_main_page_request(user, request);

View File

@ -18,20 +18,20 @@ public:
virtual void handle_request_default(Request *request); virtual void handle_request_default(Request *request);
struct LoginRequestData { struct LoginRequestData {
std::string error_str; String error_str;
std::string uname_val; String uname_val;
std::string pass_val; String pass_val;
}; };
virtual void handle_login_request_default(Request *request); virtual void handle_login_request_default(Request *request);
virtual void render_login_request_default(Request *request, LoginRequestData *data); virtual void render_login_request_default(Request *request, LoginRequestData *data);
struct RegisterRequestData { struct RegisterRequestData {
std::string error_str; String error_str;
std::string uname_val; String uname_val;
std::string email_val; String email_val;
std::string pass_val; String pass_val;
std::string pass_check_val; String pass_check_val;
}; };
virtual void handle_register_request_default(Request *request); virtual void handle_register_request_default(Request *request);
@ -45,12 +45,12 @@ public:
virtual void handle_main_page_request(Ref<User> &user, Request *request); virtual void handle_main_page_request(Ref<User> &user, Request *request);
struct SettingsRequestData { struct SettingsRequestData {
std::string error_str; String error_str;
std::string uname_val; String uname_val;
std::string email_val; String email_val;
std::string pass_val; String pass_val;
std::string pass_check_val; String pass_check_val;
}; };
virtual void handle_settings_request(Ref<User> &user, Request *request); virtual void handle_settings_request(Ref<User> &user, Request *request);

View File

@ -45,7 +45,7 @@ Ref<User> UserModel::get_user(const int id) {
return user; return user;
} }
Ref<User> UserModel::get_user(const std::string &user_name_input) { Ref<User> UserModel::get_user(const String &user_name_input) {
if (user_name_input == "") { if (user_name_input == "") {
return Ref<User>(); return Ref<User>();
} }
@ -125,7 +125,7 @@ void UserModel::save_user(Ref<User> &user) {
} }
} }
std::vector<Ref<User> > UserModel::get_all() { Vector<Ref<User> > UserModel::get_all() {
Ref<QueryBuilder> b = DatabaseManager::get_singleton()->ddb->get_query_builder(); Ref<QueryBuilder> b = DatabaseManager::get_singleton()->ddb->get_query_builder();
b->select("id, username, email, rank, pre_salt, post_salt, password_hash, banned, password_reset_token, locked"); b->select("id, username, email, rank, pre_salt, post_salt, password_hash, banned, password_reset_token, locked");
@ -133,7 +133,7 @@ std::vector<Ref<User> > UserModel::get_all() {
b->end_command(); b->end_command();
//b->print(); //b->print();
std::vector<Ref<User> > users; Vector<Ref<User> > users;
Ref<QueryResult> r = b->run(); Ref<QueryResult> r = b->run();
@ -158,7 +158,7 @@ std::vector<Ref<User> > UserModel::get_all() {
return users; return users;
} }
bool UserModel::is_username_taken(const std::string &user_name_input) { bool UserModel::is_username_taken(const String &user_name_input) {
Ref<QueryBuilder> b = DatabaseManager::get_singleton()->ddb->get_query_builder(); Ref<QueryBuilder> b = DatabaseManager::get_singleton()->ddb->get_query_builder();
b->select("id")->from(_table_name)->where("username")->like(user_name_input)->end_command(); b->select("id")->from(_table_name)->where("username")->like(user_name_input)->end_command();
@ -167,7 +167,7 @@ bool UserModel::is_username_taken(const std::string &user_name_input) {
return r->next_row(); return r->next_row();
} }
bool UserModel::is_email_taken(const std::string &email_input) { bool UserModel::is_email_taken(const String &email_input) {
Ref<QueryBuilder> b = DatabaseManager::get_singleton()->ddb->get_query_builder(); Ref<QueryBuilder> b = DatabaseManager::get_singleton()->ddb->get_query_builder();
b->select("id")->from(_table_name)->where("username")->like(email_input)->end_command(); b->select("id")->from(_table_name)->where("username")->like(email_input)->end_command();
@ -177,11 +177,11 @@ bool UserModel::is_email_taken(const std::string &email_input) {
return r->next_row(); return r->next_row();
} }
bool UserModel::check_password(const Ref<User> &user, const std::string &p_password) { bool UserModel::check_password(const Ref<User> &user, const String &p_password) {
return hash_password(user, p_password) == user->password_hash; return hash_password(user, p_password) == user->password_hash;
} }
void UserModel::create_password(Ref<User> &user, const std::string &p_password) { void UserModel::create_password(Ref<User> &user, const String &p_password) {
if (!user.is_valid()) { if (!user.is_valid()) {
printf("Error UserModel::create_password !user.is_valid()!\n"); printf("Error UserModel::create_password !user.is_valid()!\n");
return; return;
@ -194,7 +194,7 @@ void UserModel::create_password(Ref<User> &user, const std::string &p_password)
user->password_hash = hash_password(user, p_password); user->password_hash = hash_password(user, p_password);
} }
std::string UserModel::hash_password(const Ref<User> &user, const std::string &p_password) { String UserModel::hash_password(const Ref<User> &user, const String &p_password) {
if (!user.is_valid()) { if (!user.is_valid()) {
printf("Error UserModel::hash_password !user.is_valid()!\n"); printf("Error UserModel::hash_password !user.is_valid()!\n");
return ""; return "";
@ -202,9 +202,9 @@ std::string UserModel::hash_password(const Ref<User> &user, const std::string &p
Ref<SHA256> s = SHA256::get(); Ref<SHA256> s = SHA256::get();
std::string p = user->pre_salt + p_password + user->post_salt; String p = user->pre_salt + p_password + user->post_salt;
std::string c = s->compute(p); String c = s->compute(p);
return c; return c;
} }
@ -260,5 +260,5 @@ UserModel::~UserModel() {
UserModel *UserModel::_self = nullptr; UserModel *UserModel::_self = nullptr;
std::string UserModel::_path = "./"; String UserModel::_path = "./";
std::string UserModel::_table_name = "users"; String UserModel::_table_name = "users";

View File

@ -1,28 +1,29 @@
#ifndef USER_MODEL_H #ifndef USER_MODEL_H
#define USER_MODEL_H #define USER_MODEL_H
#include "core/string.h"
#include "core/containers/vector.h"
#include "core/object.h" #include "core/object.h"
#include "user.h" #include "user.h"
#include <string>
#include <vector>
class UserModel : public Object { class UserModel : public Object {
RCPP_OBJECT(UserModel, Object); RCPP_OBJECT(UserModel, Object);
public: public:
Ref<User> get_user(const int id); Ref<User> get_user(const int id);
Ref<User> get_user(const std::string &user_name_input); Ref<User> get_user(const String &user_name_input);
void save_user(Ref<User> &user); void save_user(Ref<User> &user);
std::vector<Ref<User> > get_all(); Vector<Ref<User> > get_all();
bool is_username_taken(const std::string &user_name_input); bool is_username_taken(const String &user_name_input);
bool is_email_taken(const std::string &email_input); bool is_email_taken(const String &email_input);
virtual bool check_password(const Ref<User> &user, const std::string &p_password); virtual bool check_password(const Ref<User> &user, const String &p_password);
virtual void create_password(Ref<User> &user, const std::string &p_password); virtual void create_password(Ref<User> &user, const String &p_password);
virtual std::string hash_password(const Ref<User> &user, const std::string &p_password); virtual String hash_password(const Ref<User> &user, const String &p_password);
virtual void create_table(); virtual void create_table();
virtual void drop_table(); virtual void drop_table();
@ -36,10 +37,10 @@ public:
protected: protected:
static UserModel *_self; static UserModel *_self;
std::string _file_path; String _file_path;
static std::string _path; static String _path;
static std::string _table_name; static String _table_name;
}; };
#endif #endif