diff --git a/bigbluebutton-html5/imports/api/users-settings/server/methods/addUserSettings.js b/bigbluebutton-html5/imports/api/users-settings/server/methods/addUserSettings.js index 273414919696ee676315362ccfb59f7b74f0848b..59a4cf2e22b3ab3a640e2c5e1901cba5052d6d9a 100644 --- a/bigbluebutton-html5/imports/api/users-settings/server/methods/addUserSettings.js +++ b/bigbluebutton-html5/imports/api/users-settings/server/methods/addUserSettings.js @@ -5,11 +5,45 @@ import addUserSetting from '/imports/api/users-settings/server/modifiers/addUser export default function addUserSettings(credentials, meetingId, userId, settings) { check(meetingId, String); check(userId, String); - check(settings, Object); + check(settings, [Object]); + + const customData = settings.reduce((acc, data) => { + const key = Object.keys(data).shift(); + + const handledHTML5Parameters = [ + 'html5recordingbot', + // APP + 'autoJoin', + 'listenOnlyMode', + 'forceListenOnly', + 'skipCheck', + // 'clientTitle', + 'lockOnJoin', // NOT IMPLEMENTED YET + 'askForFeedbackOnLogout', + // BRANDING + 'displayBrandingArea', + // KURENTO + 'enableScreensharing', + 'enableVideo', + 'enableVideoStats', + // WHITEBOARD + ]; + if (!handledHTML5Parameters.includes(key)) { + return acc; + } + + let value = data[key]; + try { + value = JSON.parse(value); + } catch (e) { + console.log('error', `Caught: ${e.message}`); + } + return { ...acc, [key]: value }; + }, {}); const settingsAdded = []; - Object.entries(settings).forEach((el) => { + Object.entries(customData).forEach((el) => { const setting = el[0]; const value = el[1]; settingsAdded.push(addUserSetting(meetingId, userId, setting, value)); diff --git a/bigbluebutton-html5/imports/startup/client/auth.js b/bigbluebutton-html5/imports/startup/client/auth.js index 347fed1a45a2c7ee3edd054cc6bd1a67d63e026a..723816d386897db4d825cdc625eb7c25f3e264ee 100755 --- a/bigbluebutton-html5/imports/startup/client/auth.js +++ b/bigbluebutton-html5/imports/startup/client/auth.js @@ -60,44 +60,8 @@ export function joinRouteHandler(nextState, replace, callback) { return { ...acc, [key]: value }; }, {}) : {}; - const customData = customdata.length - ? customdata.reduce((acc, data) => { - const key = Object.keys(data).shift(); - - const handledHTML5Parameters = [ - 'html5recordingbot', - // APP - 'autoJoin', - 'listenOnlyMode', - 'forceListenOnly', - 'skipCheck', - 'clientTitle', - 'lockOnJoin', // NOT IMPLEMENTED YET - 'askForFeedbackOnLogout', - // BRANDING - 'displayBrandingArea', - // KURENTO - 'enableScreensharing', - 'enableVideo', - 'enableVideoStats', - // WHITEBOARD - ]; - if (handledHTML5Parameters.indexOf(key) === -1) { - return acc; - } - - let value = data[key]; - try { - value = JSON.parse(value); - } catch (e) { - log('error', `Caught: ${e.message}`); - } - - return { ...acc, [key]: value }; - }, {}) : {}; - - if (Object.keys(customData).length > 0) { - makeCall('addUserSettings', meetingID, internalUserID, customData); + if (customdata.length) { + makeCall('addUserSettings', meetingID, internalUserID, customdata); } SessionStorage.setItem(METADATA_KEY, metakeys);