[Server] Serve account self-service updates through the database interface (#7848)

cmdAccountEdit assembled a dynamic UPDATE for the real name, email and country
columns in the socket handler, and cmdAccountImage wrote the avatar blob there
too. Add AccountUpdateRecord, updateUserAccount and setUserAvatar to
Server_DatabaseInterface with fail-closed defaults, implement them with the
previous query text and bind values, and keep the password gate, the email
permission check, the empty-edit early return and the in-memory userInfo updates
in the handler.
This commit is contained in:
BruebachL 2026-11-10 12:16:29 +01:00 • committed by GitHub
parent 8c8dd0c072
commit f7c6e81347
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 75 additions and 30 deletions

View file

@ -223,6 +223,8 @@ public:
const QString &newPassword,
bool newPasswordNeedsHash) override;
void setForcePasswordChange(const QString &user, bool force) override;
bool updateUserAccount(const QString &userName, const AccountUpdateRecord &update) override;
bool setUserAvatar(int userId, const QByteArray &image) override;
QList<ServerInfo_Ban> getUserBanHistory(const QString &userName) override;
bool addWarning(const QString userName,
const QString adminName,