feat: Makes it possible to hide the "Save Logs" link. (#8143)
As per @fremzy, the "Save Logs" feature generates a json file with a bevy of technical information about the meeting. This log contains the server name, server IP address, participant's IP addresses (only in p2p sessions) e.t.c. While this may be a useful feature for the admin-like 'moderator', it creates unnecessary exposure when made readily available to all users in the meeting. This commit fixes #8036 by a config.js option to enable the link (disabled by default), thus giving the owner of the deployment the choice of enabling it or not.
This commit is contained in:
parent
898eca86d5
commit
1041cd8055
|
@ -94,6 +94,11 @@ var config = {
|
||||||
// input and will suggest another valid device if one is present.
|
// input and will suggest another valid device if one is present.
|
||||||
enableNoAudioDetection: true,
|
enableNoAudioDetection: true,
|
||||||
|
|
||||||
|
// Enabling this will show a "Save Logs" link in the GSM popover that can be
|
||||||
|
// used to collect debug information (XMPP IQs, SDP offer/answer cycles)
|
||||||
|
// about the call.
|
||||||
|
// enableSaveLogs: false,
|
||||||
|
|
||||||
// Enabling this will run the lib-jitsi-meet noise detection module which will
|
// Enabling this will run the lib-jitsi-meet noise detection module which will
|
||||||
// notify the user if there is noise, other than voice, coming from the current
|
// notify the user if there is noise, other than voice, coming from the current
|
||||||
// selected microphone. The purpose it to let the user know that the input could
|
// selected microphone. The purpose it to let the user know that the input could
|
||||||
|
|
|
@ -84,6 +84,12 @@ type Props = AbstractProps & {
|
||||||
*/
|
*/
|
||||||
dispatch: Dispatch<any>,
|
dispatch: Dispatch<any>,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether or not should display the "Save Logs" link in the local video
|
||||||
|
* stats table.
|
||||||
|
*/
|
||||||
|
enableSaveLogs: boolean,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Whether or not clicking the indicator should display a popover for more
|
* Whether or not clicking the indicator should display a popover for more
|
||||||
* details.
|
* details.
|
||||||
|
@ -386,6 +392,7 @@ class ConnectionIndicator extends AbstractConnectionIndicator<Props, State> {
|
||||||
codec = { codec }
|
codec = { codec }
|
||||||
connectionSummary = { this._getConnectionStatusTip() }
|
connectionSummary = { this._getConnectionStatusTip() }
|
||||||
e2eRtt = { e2eRtt }
|
e2eRtt = { e2eRtt }
|
||||||
|
enableSaveLogs = { this.props.enableSaveLogs }
|
||||||
framerate = { framerate }
|
framerate = { framerate }
|
||||||
isLocalVideo = { this.props.isLocalVideo }
|
isLocalVideo = { this.props.isLocalVideo }
|
||||||
maxEnabledResolution = { maxEnabledResolution }
|
maxEnabledResolution = { maxEnabledResolution }
|
||||||
|
@ -440,7 +447,8 @@ export function _mapStateToProps(state: Object, ownProps: Props) {
|
||||||
const participant
|
const participant
|
||||||
= typeof participantId === 'undefined' ? getLocalParticipant(state) : getParticipantById(state, participantId);
|
= typeof participantId === 'undefined' ? getLocalParticipant(state) : getParticipantById(state, participantId);
|
||||||
const props = {
|
const props = {
|
||||||
_connectionStatus: participant?.connectionStatus
|
_connectionStatus: participant?.connectionStatus,
|
||||||
|
enableSaveLogs: state['features/base/config'].enableSaveLogs
|
||||||
};
|
};
|
||||||
|
|
||||||
if (conference) {
|
if (conference) {
|
||||||
|
|
|
@ -54,6 +54,11 @@ type Props = {
|
||||||
*/
|
*/
|
||||||
e2eRtt: number,
|
e2eRtt: number,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether or not should display the "Save Logs" link.
|
||||||
|
*/
|
||||||
|
enableSaveLogs: boolean,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The endpoint id of this client.
|
* The endpoint id of this client.
|
||||||
*/
|
*/
|
||||||
|
@ -153,13 +158,13 @@ class ConnectionStatsTable extends Component<Props> {
|
||||||
* @returns {ReactElement}
|
* @returns {ReactElement}
|
||||||
*/
|
*/
|
||||||
render() {
|
render() {
|
||||||
const { isLocalVideo } = this.props;
|
const { isLocalVideo, enableSaveLogs } = this.props;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className = 'connection-info'>
|
<div className = 'connection-info'>
|
||||||
{ this._renderStatistics() }
|
{ this._renderStatistics() }
|
||||||
<div className = 'connection-actions'>
|
<div className = 'connection-actions'>
|
||||||
{ isLocalVideo ? this._renderSaveLogs() : null}
|
{ isLocalVideo && enableSaveLogs ? this._renderSaveLogs() : null}
|
||||||
{ this._renderShowMoreLink() }
|
{ this._renderShowMoreLink() }
|
||||||
</div>
|
</div>
|
||||||
{ this.props.shouldShowMore ? this._renderAdditionalStats() : null }
|
{ this.props.shouldShowMore ? this._renderAdditionalStats() : null }
|
||||||
|
|
Loading…
Reference in New Issue