feat: Profile tab does not depend on isGuest.

Introduced a config property to disable profile.
This commit is contained in:
damencho 2020-11-05 11:35:03 -06:00 committed by Дамян Минков
parent c14f639639
commit 9fa29d7353
7 changed files with 16 additions and 15 deletions

View File

@ -359,6 +359,9 @@ var config = {
// Default language for the user interface.
// defaultLanguage: 'en',
// Disables profile and the edit of all fields from the profile settings (display name and email)
// disableProfile: false,
// If true all users without a token will be considered guests and all users
// with token will be considered non-guests. Only guests will be allowed to
// edit their profile.

View File

@ -104,7 +104,7 @@ export default class LocalVideo extends SmallVideo {
}
this._renderDisplayName({
allowEditing: APP.store.getState()['features/base/jwt'].isGuest,
allowEditing: !config.disableProfile,
displayNameSuffix: interfaceConfig.DEFAULT_LOCAL_DISPLAY_NAME,
elementID: 'localDisplayName',
participantID: this.id

View File

@ -85,6 +85,7 @@ export default [
'disableInviteFunctions',
'disableLocalVideoFlip',
'disableNS',
'disableProfile',
'disableRemoteControl',
'disableRemoteMute',
'disableRtx',

View File

@ -1,7 +1,5 @@
/* @flow */
import jwtDecode from 'jwt-decode';
import { parseURLParams } from '../util';
/**
@ -24,7 +22,7 @@ export function parseJWTFromURLParams(url: URL = window.location) {
* @returns {string}
*/
export function getJwtName(state: Object) {
const jwtData = jwtDecode(state['features/base/jwt'].jwt);
const { user } = state['features/base/jwt'];
return jwtData?.context?.user?.name || '';
return user?.name || '';
}

View File

@ -126,14 +126,13 @@ class SettingsDialog extends Component<Props> {
*/
function _mapStateToProps(state) {
const configuredTabs = interfaceConfig.SETTINGS_SECTIONS || [];
const jwt = state['features/base/jwt'];
// The settings sections to display.
const showDeviceSettings = configuredTabs.includes('devices');
const moreTabProps = getMoreTabProps(state);
const { showModeratorSettings, showLanguageSettings, showPrejoinSettings } = moreTabProps;
const showProfileSettings
= configuredTabs.includes('profile') && jwt.isGuest;
= configuredTabs.includes('profile') && !state['features/base/config'].disableProfile;
const showCalendarSettings
= configuredTabs.includes('calendar') && isCalendarEnabled(state);
const tabs = [];

View File

@ -120,7 +120,7 @@ class OverflowMenuProfileItem extends Component<Props> {
function _mapStateToProps(state) {
return {
_localParticipant: getLocalParticipant(state),
_unclickable: !state['features/base/jwt'].isGuest
_unclickable: state['features/base/config'].disableProfile
|| !interfaceConfig.SETTINGS_SECTIONS.includes('profile')
};
}

View File

@ -128,16 +128,16 @@ type Props = {
*/
_fullScreen: boolean,
/**
* Whether or not the profile is disabled.
*/
_isProfileDisabled: boolean,
/**
* Whether or not the tile view is enabled.
*/
_tileViewEnabled: boolean,
/**
* Whether or not the current user is logged in through a JWT.
*/
_isGuest: boolean,
/**
* Whether or not the current meeting belongs to a JaaS user.
*/
@ -993,7 +993,7 @@ class Toolbox extends Component<Props, State> {
* @returns {boolean}
*/
_isProfileVisible() {
return this.props._isGuest && this._shouldShowButton('profile');
return !this.props._isProfileDisabled && this._shouldShowButton('profile');
}
/**
@ -1448,7 +1448,7 @@ function _mapStateToProps(state) {
_desktopSharingDisabledTooltipKey: desktopSharingDisabledTooltipKey,
_dialog: Boolean(state['features/base/dialog'].component),
_feedbackConfigured: Boolean(callStatsID),
_isGuest: state['features/base/jwt'].isGuest,
_isProfileDisabled: Boolean(state['features/base/config'].disableProfile),
_isVpaasMeeting: isVpaasMeeting(state),
_fullScreen: fullScreen,
_tileViewEnabled: shouldDisplayTileView(state),