Compare commits

...

6 Commits

Author SHA1 Message Date
scott boone
8257e97898 removed a typo (#9244) 2021-05-26 16:04:13 -05:00
Scott Boone
4c5e89beac lowercase to fix tokens with uppercase letters (e.g., slack JWTs) 2021-05-26 16:04:04 -05:00
Jaya Allamsetty
c2ab87900c chore(deps) lib-jitsi-meet@latest
* fix(RTC): Disable simulcast for SS when using H.264. Fixes https://github.com/jitsi/docker-jitsi-meet/issues/1048

9eb4af1e80...f95a455c08
2021-05-25 12:58:38 -04:00
Tudor D. Pop
29103ce6a7 fix(virtual-background) fix track leak in preview 2021-05-25 11:54:36 -05:00
Vlad Piersec
cabeb70506 fix(vpaas): Avoid url blipping on invite dialog 2021-05-25 09:33:40 -05:00
Mihai-Andrei Uscat
e3918754c4 feat(AddPeopleDialog): Add config option to overwrite invite subject app name 2021-05-25 09:33:16 -05:00
9 changed files with 52 additions and 14 deletions

View File

@@ -434,6 +434,10 @@ var config = {
// Base URL for a Gravatar-compatible service. Defaults to libravatar.
// gravatarBaseURL: 'https://seccdn.libravatar.org/avatar/',
// App name to be displayed in the invitation email subject, as an alternative to
// interfaceConfig.APP_NAME.
// inviteAppName: null,
// Moved from interfaceConfig(TOOLBAR_BUTTONS).
// The name of the toolbar buttons to display in the toolbar, including the
// "More actions" menu. If present, the button will display. Exceptions are

4
package-lock.json generated
View File

@@ -10889,8 +10889,8 @@
}
},
"lib-jitsi-meet": {
"version": "github:jitsi/lib-jitsi-meet#86c7a35817728489e1464ef0cf3839bae4f38d99",
"from": "github:jitsi/lib-jitsi-meet#86c7a35817728489e1464ef0cf3839bae4f38d99",
"version": "github:jitsi/lib-jitsi-meet#f95a455c0808f55e42af9902a1b8c3fe57417c81",
"from": "github:jitsi/lib-jitsi-meet#f95a455c0808f55e42af9902a1b8c3fe57417c81",
"requires": {
"@jitsi/js-utils": "1.0.2",
"@jitsi/sdp-interop": "1.0.3",

View File

@@ -54,7 +54,7 @@
"jquery-i18next": "1.2.1",
"js-md5": "0.6.1",
"jwt-decode": "2.2.0",
"lib-jitsi-meet": "github:jitsi/lib-jitsi-meet#86c7a35817728489e1464ef0cf3839bae4f38d99",
"lib-jitsi-meet": "github:jitsi/lib-jitsi-meet#f95a455c0808f55e42af9902a1b8c3fe57417c81",
"libflacjs": "github:mmig/libflac.js#93d37e7f811f01cf7d8b6a603e38bd3c3810907d",
"lodash": "4.17.21",
"moment": "2.29.1",

View File

@@ -136,6 +136,7 @@ export default [
'iAmSipGateway',
'iceTransportPolicy',
'ignoreStartMuted',
'inviteAppName',
'liveStreamingEnabled',
'localRecording',
'maxFullResolutionParticipants',

View File

@@ -34,3 +34,13 @@ export function getDynamicBrandingUrl(state: Object) {
return `${baseUrl}?conferenceFqn=${encodeURIComponent(fqn)}`;
}
}
/**
* Selector used for getting the load state of the dynamic branding data.
*
* @param {Object} state - Global state of the app.
* @returns {boolean}
*/
export function isDynamicBrandingDataLoaded(state: Object) {
return state['features/dynamic-branding'].customizationReady;
}

View File

@@ -32,8 +32,8 @@ const DEFAULT_STATE = {
backgroundImageUrl: '',
/**
* Flag indicating that the logo (JitsiWatermark) can be displayed.
* This is used in order to avoid image flickering.
* Flag indicating that the branding data can be displayed.
* This is used in order to avoid image flickering / text changing(blipping).
*
* @public
* @type {boolean}

View File

@@ -9,6 +9,7 @@ import { translate } from '../../../../base/i18n';
import { JitsiRecordingConstants } from '../../../../base/lib-jitsi-meet';
import { connect } from '../../../../base/redux';
import { isVpaasMeeting } from '../../../../billing-counter/functions';
import { isDynamicBrandingDataLoaded } from '../../../../dynamic-branding/functions';
import EmbedMeetingTrigger from '../../../../embed-meeting/components/EmbedMeetingTrigger';
import { getActiveSession } from '../../../../recording';
import { updateDialInNumbers } from '../../../actions';
@@ -61,6 +62,11 @@ type Props = {
*/
_invitationText: string,
/**
* An alternate app name to be displayed in the email subject.
*/
_inviteAppName: ?string,
/**
* Whether or not invite contacts should be visible.
*/
@@ -104,6 +110,7 @@ function AddPeopleDialog({
_urlSharingVisible,
_emailSharingVisible,
_invitationText,
_inviteAppName,
_inviteContactsVisible,
_inviteUrl,
_liveStreamViewURL,
@@ -136,7 +143,7 @@ function AddPeopleDialog({
}, []);
const inviteSubject = t('addPeople.inviteMoreMailSubject', {
appName: interfaceConfig.APP_NAME
appName: _inviteAppName ?? interfaceConfig.APP_NAME
});
return (
@@ -184,7 +191,7 @@ function AddPeopleDialog({
function mapStateToProps(state, ownProps) {
const currentLiveStreamingSession
= getActiveSession(state, JitsiRecordingConstants.mode.STREAM);
const { iAmRecorder } = state['features/base/config'];
const { iAmRecorder, inviteAppName } = state['features/base/config'];
const addPeopleEnabled = isAddPeopleEnabled(state);
const dialOutEnabled = isDialOutEnabled(state);
const hideInviteContacts = iAmRecorder || (!addPeopleEnabled && !dialOutEnabled);
@@ -195,11 +202,12 @@ function mapStateToProps(state, ownProps) {
_dialIn: dialIn,
_embedMeetingVisible: !isVpaasMeeting(state) && isSharingEnabled(sharingFeatures.embed),
_dialInVisible: isSharingEnabled(sharingFeatures.dialIn),
_urlSharingVisible: isSharingEnabled(sharingFeatures.url),
_urlSharingVisible: isDynamicBrandingDataLoaded(state) && isSharingEnabled(sharingFeatures.url),
_emailSharingVisible: isSharingEnabled(sharingFeatures.email),
_invitationText: getInviteText({ state,
phoneNumber,
t: ownProps.t }),
_inviteAppName: inviteAppName,
_inviteContactsVisible: interfaceConfig.ENABLE_DIAL_OUT && !hideInviteContacts,
_inviteUrl: getInviteURL(state),
_liveStreamViewURL:

View File

@@ -78,6 +78,18 @@ class VirtualBackgroundPreview extends PureComponent<Props, State> {
};
}
/**
* Destroys the jitsiTrack object.
*
* @param {Object} jitsiTrack - The track that needs to be disposed.
* @returns {Promise<void>}
*/
_stopStream(jitsiTrack) {
if (jitsiTrack) {
jitsiTrack.dispose();
}
}
/**
* Creates and updates the track data.
*
@@ -89,9 +101,12 @@ class VirtualBackgroundPreview extends PureComponent<Props, State> {
devices: [ 'video' ]
});
// In case the component gets unmounted before the tracks are created
// avoid a leak by not setting the state
if (this._componentWasUnmounted) {
this._stopStream(jitsiTrack);
return;
}
this.setState({
@@ -178,6 +193,7 @@ class VirtualBackgroundPreview extends PureComponent<Props, State> {
*/
componentWillUnmount() {
this._componentWasUnmounted = true;
this._stopStream(this.state.jitsiTrack);
}
/**

View File

@@ -337,11 +337,11 @@ function Util:verify_room(session, room_address)
return true;
end
local auth_room = session.jitsi_meet_room;
local auth_room = string.lower(session.jitsi_meet_room);
if not self.enableDomainVerification then
-- if auth_room is missing, this means user is anonymous (no token for
-- its domain) we let it through, jicofo is verifying creation domain
if auth_room and room ~= string.lower(auth_room) and auth_room ~= '*' then
if auth_room and room ~= auth_room and auth_room ~= '*' then
return false;
end
@@ -383,7 +383,7 @@ function Util:verify_room(session, room_address)
end
end
local auth_domain = session.jitsi_meet_domain;
local auth_domain = string.lower(session.jitsi_meet_domain);
local subdomain_to_check;
if target_subdomain then
if auth_domain == '*' then
@@ -401,7 +401,7 @@ function Util:verify_room(session, room_address)
end
return room_address_to_verify == jid.join(
"["..string.lower(subdomain_to_check).."]"..string.lower(room_to_check), self.muc_domain);
"["..subdomain_to_check.."]"..room_to_check, self.muc_domain);
else
if auth_domain == '*' then
-- check for wildcard in JWT claim, allow access if found
@@ -412,8 +412,7 @@ function Util:verify_room(session, room_address)
end
-- we do not have a domain part (multidomain is not enabled)
-- verify with info from the token
return room_address_to_verify == jid.join(
string.lower(room_to_check), string.lower(subdomain_to_check));
return room_address_to_verify == jid.join(room_to_check, subdomain_to_check);
end
end