mirror of
https://github.com/Relintai/pandemonium_engine.git
synced 2024-11-21 16:37:20 +01:00
Added a method to get all users from the UserDB and UserManagers.
This commit is contained in:
parent
e7e91f7aa2
commit
14100c3ac0
@ -82,8 +82,26 @@ bool UserManager::_is_email_taken(const String &email) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Vector<Ref<User>> UserManager::get_all() {
|
Vector<Ref<User>> UserManager::get_all_as_vector() {
|
||||||
return Vector<Ref<User>>();
|
Vector<Ref<User>> ret;
|
||||||
|
|
||||||
|
Array res = call("_get_all");
|
||||||
|
|
||||||
|
ret.resize(res.size());
|
||||||
|
|
||||||
|
for (int i = 0; i < res.size(); ++i) {
|
||||||
|
ret.write[i] = Ref<User>(res.get(i));
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
Array UserManager::get_all_users() {
|
||||||
|
return call("_get_all_users");
|
||||||
|
}
|
||||||
|
|
||||||
|
Array UserManager::_get_all_users() {
|
||||||
|
return Array();
|
||||||
}
|
}
|
||||||
|
|
||||||
UserManager::UserManager() {
|
UserManager::UserManager() {
|
||||||
@ -110,6 +128,7 @@ void UserManager::_bind_methods() {
|
|||||||
|
|
||||||
BIND_VMETHOD(MethodInfo(PropertyInfo(Variant::BOOL, "ret"), "_is_username_taken", PropertyInfo(Variant::STRING, "user_name")));
|
BIND_VMETHOD(MethodInfo(PropertyInfo(Variant::BOOL, "ret"), "_is_username_taken", PropertyInfo(Variant::STRING, "user_name")));
|
||||||
BIND_VMETHOD(MethodInfo(PropertyInfo(Variant::BOOL, "ret"), "_is_email_taken", PropertyInfo(Variant::STRING, "email")));
|
BIND_VMETHOD(MethodInfo(PropertyInfo(Variant::BOOL, "ret"), "_is_email_taken", PropertyInfo(Variant::STRING, "email")));
|
||||||
|
BIND_VMETHOD(MethodInfo(PropertyInfo(Variant::ARRAY, "ret"), "_get_all_users"));
|
||||||
|
|
||||||
ClassDB::bind_method(D_METHOD("get_user", "id"), &UserManager::get_user);
|
ClassDB::bind_method(D_METHOD("get_user", "id"), &UserManager::get_user);
|
||||||
ClassDB::bind_method(D_METHOD("get_user_name", "user_name"), &UserManager::get_user_name);
|
ClassDB::bind_method(D_METHOD("get_user_name", "user_name"), &UserManager::get_user_name);
|
||||||
@ -131,4 +150,7 @@ void UserManager::_bind_methods() {
|
|||||||
|
|
||||||
ClassDB::bind_method(D_METHOD("_is_username_taken", "user_name"), &UserManager::_is_username_taken);
|
ClassDB::bind_method(D_METHOD("_is_username_taken", "user_name"), &UserManager::_is_username_taken);
|
||||||
ClassDB::bind_method(D_METHOD("_is_email_taken", "email"), &UserManager::_is_email_taken);
|
ClassDB::bind_method(D_METHOD("_is_email_taken", "email"), &UserManager::_is_email_taken);
|
||||||
|
|
||||||
|
ClassDB::bind_method(D_METHOD("get_all_users"), &UserManager::get_all_users);
|
||||||
|
ClassDB::bind_method(D_METHOD("_get_all_users"), &UserManager::_get_all_users);
|
||||||
}
|
}
|
||||||
|
@ -66,7 +66,10 @@ 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();
|
virtual Vector<Ref<User>> get_all_as_vector();
|
||||||
|
|
||||||
|
Array get_all_users();
|
||||||
|
virtual Array _get_all_users();
|
||||||
|
|
||||||
UserManager();
|
UserManager();
|
||||||
~UserManager();
|
~UserManager();
|
||||||
|
@ -274,7 +274,7 @@ bool UserManagerDB::_is_email_taken(const String &email) {
|
|||||||
return r->next_row();
|
return r->next_row();
|
||||||
}
|
}
|
||||||
|
|
||||||
Vector<Ref<User>> UserManagerDB::get_all() {
|
Vector<Ref<User>> UserManagerDB::get_all_as_vector() {
|
||||||
Ref<QueryBuilder> b = get_query_builder();
|
Ref<QueryBuilder> b = 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");
|
||||||
@ -306,6 +306,38 @@ Vector<Ref<User>> UserManagerDB::get_all() {
|
|||||||
return users;
|
return users;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Array UserManagerDB::_get_all_users() {
|
||||||
|
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();
|
||||||
|
|
||||||
|
Array 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.get_ref_ptr());
|
||||||
|
}
|
||||||
|
|
||||||
|
return users;
|
||||||
|
}
|
||||||
|
|
||||||
void UserManagerDB::create_table() {
|
void UserManagerDB::create_table() {
|
||||||
call("_create_table");
|
call("_create_table");
|
||||||
}
|
}
|
||||||
|
@ -70,7 +70,8 @@ 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();
|
Vector<Ref<User>> get_all_as_vector();
|
||||||
|
Array _get_all_users();
|
||||||
|
|
||||||
void create_table();
|
void create_table();
|
||||||
void drop_table();
|
void drop_table();
|
||||||
|
@ -152,10 +152,26 @@ bool UserManagerFile::_is_email_taken(const String &email) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Vector<Ref<User>> UserManagerFile::get_all() {
|
Vector<Ref<User>> UserManagerFile::get_all_as_vector() {
|
||||||
return _users;
|
return _users;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Array UserManagerFile::_get_all_users() {
|
||||||
|
Array ret;
|
||||||
|
|
||||||
|
_rw_lock.read_lock();
|
||||||
|
|
||||||
|
ret.resize(_users.size());
|
||||||
|
|
||||||
|
for (int i = 0; i < _users.size(); ++i) {
|
||||||
|
ret[i] = Variant(_users[i].get_ref_ptr());
|
||||||
|
}
|
||||||
|
|
||||||
|
_rw_lock.read_unlock();
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
UserManagerFile::UserManagerFile() {
|
UserManagerFile::UserManagerFile() {
|
||||||
set_process_internal(true);
|
set_process_internal(true);
|
||||||
_save_folder_path = "users";
|
_save_folder_path = "users";
|
||||||
|
@ -59,7 +59,8 @@ 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();
|
Vector<Ref<User>> get_all_as_vector();
|
||||||
|
Array _get_all_users();
|
||||||
|
|
||||||
UserManagerFile();
|
UserManagerFile();
|
||||||
~UserManagerFile();
|
~UserManagerFile();
|
||||||
|
@ -105,10 +105,22 @@ bool UserManagerStatic::_is_email_taken(const String &email) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Vector<Ref<User>> UserManagerStatic::get_all() {
|
Vector<Ref<User>> UserManagerStatic::get_all_as_vector() {
|
||||||
return _users;
|
return _users;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Array UserManagerStatic::_get_all_users() {
|
||||||
|
Array ret;
|
||||||
|
|
||||||
|
ret.resize(_users.size());
|
||||||
|
|
||||||
|
for (int i = 0; i < _users.size(); ++i) {
|
||||||
|
ret[i] = Variant(_users[i].get_ref_ptr());
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
Vector<Variant> UserManagerStatic::get_users() {
|
Vector<Variant> UserManagerStatic::get_users() {
|
||||||
Vector<Variant> r;
|
Vector<Variant> r;
|
||||||
for (int i = 0; i < _users.size(); i++) {
|
for (int i = 0; i < _users.size(); i++) {
|
||||||
|
@ -56,7 +56,8 @@ 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();
|
Vector<Ref<User>> get_all_as_vector();
|
||||||
|
Array _get_all_users();
|
||||||
|
|
||||||
Vector<Variant> get_users();
|
Vector<Variant> get_users();
|
||||||
void set_users(const Vector<Variant> &users);
|
void set_users(const Vector<Variant> &users);
|
||||||
|
@ -158,6 +158,26 @@ bool UserDB::is_email_taken(const String &email) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Array UserDB::get_all_users() {
|
||||||
|
if (_user_manager) {
|
||||||
|
return _user_manager->get_all_users();
|
||||||
|
}
|
||||||
|
|
||||||
|
Array ret;
|
||||||
|
|
||||||
|
_lock.read_lock();
|
||||||
|
|
||||||
|
ret.resize(_users.size());
|
||||||
|
|
||||||
|
for (int i = 0; i < _users.size(); ++i) {
|
||||||
|
ret[i] = Variant(_users[i].get_ref_ptr());
|
||||||
|
}
|
||||||
|
|
||||||
|
_lock.read_unlock();
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
UserManager *UserDB::get_user_manager() {
|
UserManager *UserDB::get_user_manager() {
|
||||||
return _user_manager;
|
return _user_manager;
|
||||||
}
|
}
|
||||||
@ -193,6 +213,8 @@ void UserDB::_bind_methods() {
|
|||||||
ClassDB::bind_method(D_METHOD("is_username_taken", "user_name"), &UserDB::is_username_taken);
|
ClassDB::bind_method(D_METHOD("is_username_taken", "user_name"), &UserDB::is_username_taken);
|
||||||
ClassDB::bind_method(D_METHOD("is_email_taken", "email"), &UserDB::is_email_taken);
|
ClassDB::bind_method(D_METHOD("is_email_taken", "email"), &UserDB::is_email_taken);
|
||||||
|
|
||||||
|
ClassDB::bind_method(D_METHOD("get_all_users"), &UserDB::get_all_users);
|
||||||
|
|
||||||
ClassDB::bind_method(D_METHOD("get_user_manager"), &UserDB::get_user_manager_bind);
|
ClassDB::bind_method(D_METHOD("get_user_manager"), &UserDB::get_user_manager_bind);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -50,8 +50,6 @@ public:
|
|||||||
//get_user_id
|
//get_user_id
|
||||||
//get_user_index
|
//get_user_index
|
||||||
//get_user_count
|
//get_user_count
|
||||||
//get_users
|
|
||||||
//get_users_bind
|
|
||||||
//delete_user_id
|
//delete_user_id
|
||||||
//delete_user_index
|
//delete_user_index
|
||||||
//delete_user_name
|
//delete_user_name
|
||||||
@ -69,6 +67,8 @@ 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);
|
||||||
|
|
||||||
|
Array get_all_users();
|
||||||
|
|
||||||
UserManager *get_user_manager();
|
UserManager *get_user_manager();
|
||||||
void set_user_manager(UserManager *um);
|
void set_user_manager(UserManager *um);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user