[ACP] Allow searching users by email.
This commit is contained in:
parent
d23b5278b1
commit
93ef067b8c
4 changed files with 32 additions and 29 deletions
20
src/acp.js
20
src/acp.js
|
|
@ -91,14 +91,26 @@ function handleGlobalBanDelete(user, data) {
|
|||
}
|
||||
|
||||
function handleListUsers(user, data) {
|
||||
var name = data.name;
|
||||
if (typeof name !== "string") {
|
||||
name = "";
|
||||
var query = data.query;
|
||||
if (typeof query !== "string") {
|
||||
query = "";
|
||||
}
|
||||
|
||||
var field = data.field;
|
||||
if (typeof field !== "string") {
|
||||
field = "name";
|
||||
}
|
||||
|
||||
var fields = ["id", "name", "global_rank", "email", "ip", "time"];
|
||||
|
||||
db.users.search(name, fields, function (err, users) {
|
||||
if(!fields.includes(field)){
|
||||
user.socket.emit("errMessage", {
|
||||
msg: `The field "${field}" doesn't exist or isn't searchable.`
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
db.users.search(field, query, fields, function (err, users) {
|
||||
if (err) {
|
||||
user.socket.emit("errMessage", {
|
||||
msg: err
|
||||
|
|
|
|||
|
|
@ -51,29 +51,16 @@ module.exports = {
|
|||
},
|
||||
|
||||
/**
|
||||
* Search for a user by name
|
||||
* Search for a user by any field
|
||||
*/
|
||||
search: function (name, fields, callback) {
|
||||
/* This bit allows it to accept varargs
|
||||
Function can be called as (name, callback) or
|
||||
(name, fields, callback)
|
||||
*/
|
||||
if (typeof callback !== "function") {
|
||||
if (typeof fields === "function") {
|
||||
callback = fields;
|
||||
fields = ["name"];
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
search: function (where, like, fields, callback) {
|
||||
// Don't allow search to return password hashes
|
||||
if (fields.indexOf("password") !== -1) {
|
||||
fields.splice(fields.indexOf("password"));
|
||||
}
|
||||
|
||||
db.query("SELECT " + fields.join(",") + " FROM `users` WHERE name LIKE ?",
|
||||
["%"+name+"%"],
|
||||
db.query(`SELECT ${fields.join(",")} FROM \`users\` WHERE ${where} LIKE ?`,
|
||||
["%"+like+"%"],
|
||||
function (err, rows) {
|
||||
if (err) {
|
||||
callback(err, true);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue