callstats: add siteID passing; sanitize confID path

This commit is contained in:
Gabriel Imre 2020-05-28 13:39:48 +03:00 committed by Дамян Минков
parent 7de88995a5
commit 444e2b90df
4 changed files with 36 additions and 4 deletions

View File

@ -101,7 +101,10 @@ import {
trackAdded, trackAdded,
trackRemoved trackRemoved
} from './react/features/base/tracks'; } from './react/features/base/tracks';
import { getJitsiMeetGlobalNS } from './react/features/base/util'; import {
getBackendSafePath,
getJitsiMeetGlobalNS
} from './react/features/base/util';
import { showDesktopPicker } from './react/features/desktop-picker'; import { showDesktopPicker } from './react/features/desktop-picker';
import { appendSuffix } from './react/features/display-name'; import { appendSuffix } from './react/features/display-name';
import { setE2EEKey } from './react/features/e2ee'; import { setE2EEKey } from './react/features/e2ee';
@ -1364,7 +1367,13 @@ export default {
const options = config; const options = config;
const { email, name: nick } = getLocalParticipant(APP.store.getState()); const { email, name: nick } = getLocalParticipant(APP.store.getState());
const { locationURL } = APP.store.getState()['features/base/connection']; const state = APP.store.getState();
const { locationURL } = state['features/base/connection'];
const { tenant } = state['features/base/jwt'];
if (tenant) {
options.siteID = tenant;
}
if (options.enableDisplayNameInStats && nick) { if (options.enableDisplayNameInStats && nick) {
options.statisticsDisplayName = nick; options.statisticsDisplayName = nick;
@ -1376,7 +1385,7 @@ export default {
options.applicationName = interfaceConfig.APP_NAME; options.applicationName = interfaceConfig.APP_NAME;
options.getWiFiStatsMethod = this._getWiFiStatsMethod; options.getWiFiStatsMethod = this._getWiFiStatsMethod;
options.confID = `${locationURL.host}${locationURL.pathname}`; options.confID = `${locationURL.host}${getBackendSafePath(locationURL.pathname)}`;
options.createVADProcessor = createRnnoiseProcessorPromise; options.createVADProcessor = createRnnoiseProcessorPromise;
// Disable CallStats, if requessted. // Disable CallStats, if requessted.

View File

@ -24,6 +24,7 @@ import {
} from '../participants'; } from '../participants';
import { getLocalTracks, trackAdded, trackRemoved } from '../tracks'; import { getLocalTracks, trackAdded, trackRemoved } from '../tracks';
import { import {
getBackendSafePath,
getBackendSafeRoomName, getBackendSafeRoomName,
getJitsiMeetGlobalNS getJitsiMeetGlobalNS
} from '../util'; } from '../util';
@ -417,7 +418,9 @@ export function createConference() {
} }
const config = state['features/base/config']; const config = state['features/base/config'];
const { tenant } = state['features/base/jwt'];
const { email, name: nick } = getLocalParticipant(state); const { email, name: nick } = getLocalParticipant(state);
const conference const conference
= connection.initJitsiConference( = connection.initJitsiConference(
@ -425,7 +428,8 @@ export function createConference() {
...config, ...config,
applicationName: getName(), applicationName: getName(),
getWiFiStatsMethod: getJitsiMeetGlobalNS().getWiFiStats, getWiFiStatsMethod: getJitsiMeetGlobalNS().getWiFiStats,
confID: `${locationURL.host}${locationURL.pathname}`, confID: `${locationURL.host}${getBackendSafePath(locationURL.pathname)}`,
siteID: tenant,
statisticsDisplayName: config.enableDisplayNameInStats ? nick : undefined, statisticsDisplayName: config.enableDisplayNameInStats ? nick : undefined,
statisticsId: config.enableEmailInStats ? email : undefined statisticsId: config.enableEmailInStats ? email : undefined
}); });

View File

@ -146,6 +146,7 @@ function _setJWT(store, next, action) {
action.callee = context.callee; action.callee = context.callee;
action.group = context.group; action.group = context.group;
action.server = context.server; action.server = context.server;
action.tenant = context.tenant;
action.user = user; action.user = user;
user && _overwriteLocalParticipant( user && _overwriteLocalParticipant(

View File

@ -99,6 +99,24 @@ function _fixURIStringScheme(uri: string) {
return uri; return uri;
} }
/**
* Converts a path to a backend-safe format, by splitting the path '/' processing each part.
* Properly lowercased and url encoded.
*
* @param {string?} path - The path to convert.
* @returns {string?}
*/
export function getBackendSafePath(path: ?string): ?string {
if (!path) {
return path;
}
return path
.split('/')
.map(getBackendSafeRoomName)
.join('/');
}
/** /**
* Converts a room name to a backend-safe format. Properly lowercased and url encoded. * Converts a room name to a backend-safe format. Properly lowercased and url encoded.
* *