Now get_all_as_vector() in UserManager is not virtual anymore. Also removed other implementations.

- This had to be done as get_all_as_vector() cannot be customized by
scripts, and if an inherited UserManager needs to set up UserModules
this will cause issues later down the line.
- Other solutions like a user_setup() method could also work, but then
that would cause more individual (non-optimizable) lookups to db-based
backends (and likely others too), so this solution seems to be the best
currently.
This commit is contained in:
Relintai 2025-05-03 17:07:24 +02:00
parent 8a1981d1b8
commit fd13bb3c51
7 changed files with 1 additions and 44 deletions

View File

@ -66,7 +66,7 @@ public:
virtual bool _is_username_taken(const String &user_name); virtual bool _is_username_taken(const String &user_name);
virtual bool _is_email_taken(const String &email); virtual bool _is_email_taken(const String &email);
virtual Vector<Ref<User>> get_all_as_vector(); Vector<Ref<User>> get_all_as_vector();
Array get_all_users(); Array get_all_users();
virtual Array _get_all_users(); virtual Array _get_all_users();

View File

@ -274,38 +274,6 @@ bool UserManagerDB::_is_email_taken(const String &email) {
return r->next_row(); return r->next_row();
} }
Vector<Ref<User>> UserManagerDB::get_all_as_vector() {
Ref<QueryBuilder> b = get_query_builder();
b->select("id, username, email, rank, pre_salt, post_salt, password_hash, banned, password_reset_token, locked");
b->from(_database_table_name);
b->end_command();
// b->print();
Vector<Ref<User>> users;
Ref<QueryResult> r = b->run();
while (r->next_row()) {
Ref<User> user = create_user();
user->set_user_id(r->get_cell_int(0));
user->set_user_name(r->get_cell(1));
user->set_email(r->get_cell(2));
user->set_rank(r->get_cell_int(3));
user->set_pre_salt(r->get_cell(4));
user->set_post_salt(r->get_cell(5));
user->set_password_hash(r->get_cell(6));
user->set_banned(r->get_cell_bool(7));
user->set_password_reset_token(r->get_cell(8));
user->set_locked(r->get_cell_bool(9));
users.push_back(user);
}
return users;
}
Array UserManagerDB::_get_all_users() { Array UserManagerDB::_get_all_users() {
Ref<QueryBuilder> b = get_query_builder(); Ref<QueryBuilder> b = get_query_builder();

View File

@ -70,7 +70,6 @@ public:
bool _is_username_taken(const String &user_name); bool _is_username_taken(const String &user_name);
bool _is_email_taken(const String &email); bool _is_email_taken(const String &email);
Vector<Ref<User>> get_all_as_vector();
Array _get_all_users(); Array _get_all_users();
void create_table(); void create_table();

View File

@ -152,10 +152,6 @@ bool UserManagerFile::_is_email_taken(const String &email) {
return false; return false;
} }
Vector<Ref<User>> UserManagerFile::get_all_as_vector() {
return _users;
}
Array UserManagerFile::_get_all_users() { Array UserManagerFile::_get_all_users() {
Array ret; Array ret;

View File

@ -59,7 +59,6 @@ public:
bool _is_username_taken(const String &user_name); bool _is_username_taken(const String &user_name);
bool _is_email_taken(const String &email); bool _is_email_taken(const String &email);
Vector<Ref<User>> get_all_as_vector();
Array _get_all_users(); Array _get_all_users();
UserManagerFile(); UserManagerFile();

View File

@ -105,10 +105,6 @@ bool UserManagerStatic::_is_email_taken(const String &email) {
return false; return false;
} }
Vector<Ref<User>> UserManagerStatic::get_all_as_vector() {
return _users;
}
Array UserManagerStatic::_get_all_users() { Array UserManagerStatic::_get_all_users() {
Array ret; Array ret;

View File

@ -56,7 +56,6 @@ public:
bool _is_username_taken(const String &user_name); bool _is_username_taken(const String &user_name);
bool _is_email_taken(const String &email); bool _is_email_taken(const String &email);
Vector<Ref<User>> get_all_as_vector();
Array _get_all_users(); Array _get_all_users();
Vector<Variant> get_users(); Vector<Variant> get_users();