From e88e10cc8e640af3d80674a9c624cac685874ba0 Mon Sep 17 00:00:00 2001 From: Louis Lam Date: Sun, 1 Jan 2023 21:43:39 +0800 Subject: [PATCH 1/3] Fix #2494 --- server/socket-handlers/maintenance-socket-handler.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/server/socket-handlers/maintenance-socket-handler.js b/server/socket-handlers/maintenance-socket-handler.js index 5294050ca..929150cdd 100644 --- a/server/socket-handlers/maintenance-socket-handler.js +++ b/server/socket-handlers/maintenance-socket-handler.js @@ -244,6 +244,8 @@ module.exports.maintenanceSocketHandler = (socket) => { socket.userID, ]); + apicache.clear(); + callback({ ok: true, msg: "Deleted Successfully.", @@ -269,6 +271,8 @@ module.exports.maintenanceSocketHandler = (socket) => { maintenanceID, ]); + apicache.clear(); + callback({ ok: true, msg: "Paused Successfully.", @@ -294,6 +298,8 @@ module.exports.maintenanceSocketHandler = (socket) => { maintenanceID, ]); + apicache.clear(); + callback({ ok: true, msg: "Resume Successfully", From 50711391d1ddd8a597aba578609fabaade82e8c4 Mon Sep 17 00:00:00 2001 From: Louis Lam Date: Sun, 1 Jan 2023 22:19:00 +0800 Subject: [PATCH 2/3] Revert "Auth: Case insensitive login check on username" --- db/patch-user-username-case-insensitive.sql | 47 --------------------- server/auth.js | 2 +- server/database.js | 1 - 3 files changed, 1 insertion(+), 49 deletions(-) delete mode 100644 db/patch-user-username-case-insensitive.sql diff --git a/db/patch-user-username-case-insensitive.sql b/db/patch-user-username-case-insensitive.sql deleted file mode 100644 index 90b7f1cb2..000000000 --- a/db/patch-user-username-case-insensitive.sql +++ /dev/null @@ -1,47 +0,0 @@ -CREATE TABLE [temp_user]( - [id] INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, - [username] VARCHAR(255) NOT NULL UNIQUE COLLATE NOCASE, - [password] VARCHAR(255), - [active] BOOLEAN NOT NULL DEFAULT 1, - [timezone] VARCHAR(150), - twofa_secret VARCHAR(64), - twofa_status BOOLEAN default 0 NOT NULL, - twofa_last_token VARCHAR(6) -); - -INSERT INTO [temp_user] SELECT -[id], -[username], -[password], -[active], -[timezone], -twofa_secret, -twofa_status, -twofa_last_token - FROM user; - -DROP TABLE user; - -CREATE TABLE [user]( - [id] INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, - [username] VARCHAR(255) NOT NULL UNIQUE COLLATE NOCASE, - [password] VARCHAR(255), - [active] BOOLEAN NOT NULL DEFAULT 1, - [timezone] VARCHAR(150), - twofa_secret VARCHAR(64), - twofa_status BOOLEAN default 0 NOT NULL, - twofa_last_token VARCHAR(6) -); - -INSERT INTO [user] SELECT -[id], -[username], -[password], -[active], -[timezone], -twofa_secret, -twofa_status, -twofa_last_token - FROM [temp_user]; - -DROP TABLE [temp_user]; diff --git a/server/auth.js b/server/auth.js index b4eeee41f..3ce1a6041 100644 --- a/server/auth.js +++ b/server/auth.js @@ -15,7 +15,7 @@ exports.login = async function (username, password) { return null; } - let user = await R.findOne("user", " username = ? AND active = 1", [ + let user = await R.findOne("user", " username = ? AND active = 1 ", [ username, ]); diff --git a/server/database.js b/server/database.js index 7764df3f6..2544f1972 100644 --- a/server/database.js +++ b/server/database.js @@ -66,7 +66,6 @@ class Database { "patch-add-radius-monitor.sql": true, "patch-monitor-add-resend-interval.sql": true, "patch-maintenance-table2.sql": true, - "patch-user-username-case-insensitive.sql": { parents: [ "patch-2fa-invalidate-used-token.sql", "patch-2fa.sql" ] } }; /** From 39ac9b887e0fbf98b0c53d1c37b75383d6458ecf Mon Sep 17 00:00:00 2001 From: Louis Lam Date: Sun, 1 Jan 2023 22:27:14 +0800 Subject: [PATCH 3/3] Fix #2504 --- server/util-server.js | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/server/util-server.js b/server/util-server.js index 2ce6de3ee..ffd171b40 100644 --- a/server/util-server.js +++ b/server/util-server.js @@ -248,19 +248,19 @@ exports.dnsResolve = function (hostname, resolverServer, resolverPort, rrtype) { * @param {string} query The query to validate the database with * @returns {Promise<(string[]|Object[]|Object)>} */ -exports.mssqlQuery = function (connectionString, query) { - return new Promise((resolve, reject) => { - mssql.connect(connectionString).then(pool => { - return pool.request() - .query(query); - }).then(result => { - resolve(result); - }).catch(err => { - reject(err); - }).finally(() => { - mssql.close(); - }); - }); +exports.mssqlQuery = async function (connectionString, query) { + let pool; + try { + pool = new mssql.ConnectionPool(connectionString); + await pool.connect(); + await pool.request().query(query); + pool.close(); + } catch (e) { + if (pool) { + pool.close(); + } + throw e; + } }; /**