From e375038ce0fed99844fa4dd7c1a4edeac9b51167 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Tue, 19 Nov 2024 16:37:14 -0500 Subject: [PATCH] get whitelisted fields from plugins as well --- src/socket.io/admin/user.js | 2 +- src/user/data.js | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/socket.io/admin/user.js b/src/socket.io/admin/user.js index 15a4963962..9367ff9c53 100644 --- a/src/socket.io/admin/user.js +++ b/src/socket.io/admin/user.js @@ -189,7 +189,7 @@ User.exportUsersCSV = async function (socket, data) { }; User.saveCustomFields = async function (socket, fields) { - const userFields = user.getUserFieldWhitelist(); + const userFields = await user.getUserFieldWhitelist(); for (const field of fields) { if (userFields.includes(field.key) || userFields.includes(field.key.toLowerCase())) { throw new Error(`[[error:invalid-custom-user-field, ${field.key}]]`); diff --git a/src/user/data.js b/src/user/data.js index 06caba76b0..037b13f887 100644 --- a/src/user/data.js +++ b/src/user/data.js @@ -52,8 +52,12 @@ module.exports = function (User) { customFieldWhiteList = await db.getSortedSetRange('user-custom-fields', 0, -1); }; - User.getUserFieldWhitelist = function () { - return fieldWhitelist.slice(); + User.getUserFieldWhitelist = async function () { + const { whitelist } = await plugins.hooks.fire('filter:user.whitelistFields', { + uids: [], + whitelist: fieldWhitelist.slice(), + }); + return whitelist; }; User.getUsersFields = async function (uids, fields) {