From c22bfa84b7498635916ad4afc8ce2f16f530bef3 Mon Sep 17 00:00:00 2001 From: Travis Ralston Date: Thu, 23 Jan 2020 16:29:55 -0700 Subject: [PATCH] Hide password section if you can't change your password Fixes https://github.com/vector-im/riot-web/issues/11950 --- .../tabs/user/GeneralUserSettingsTab.js | 18 +++++++++++++++--- src/i18n/strings/en_EN.json | 2 +- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/components/views/settings/tabs/user/GeneralUserSettingsTab.js b/src/components/views/settings/tabs/user/GeneralUserSettingsTab.js index b9eaa3efa3..1325a1c583 100644 --- a/src/components/views/settings/tabs/user/GeneralUserSettingsTab.js +++ b/src/components/views/settings/tabs/user/GeneralUserSettingsTab.js @@ -70,7 +70,12 @@ export default class GeneralUserSettingsTab extends React.Component { const cli = MatrixClientPeg.get(); const serverSupportsSeparateAddAndBind = await cli.doesServerSupportSeparateAddAndBind(); - this.setState({serverSupportsSeparateAddAndBind}); + + const capabilities = await cli.getCapabilities(); // this is cached + const changePasswordCap = capabilities['m.change_password']; + const canChangePassword = changePasswordCap && changePasswordCap['enabled'] === false; + + this.setState({serverSupportsSeparateAddAndBind, canChangePassword}); this._getThreepidState(); } @@ -280,7 +285,7 @@ export default class GeneralUserSettingsTab extends React.Component { const PhoneNumbers = sdk.getComponent("views.settings.account.PhoneNumbers"); const Spinner = sdk.getComponent("views.elements.Spinner"); - const passwordChangeForm = ( + let passwordChangeForm = ( ; } + let passwordChangeText = _t("Set a new account password..."); + if (!this.state.canChangePassword) { + // Just don't show anything if you can't do anything. + passwordChangeText = null; + passwordChangeForm = null; + } + return (
{_t("Account")}

- {_t("Set a new account password...")} + {passwordChangeText}

{passwordChangeForm} {threepidSection} diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index c86640132a..099b64dd49 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -665,8 +665,8 @@ "Profile": "Profile", "Email addresses": "Email addresses", "Phone numbers": "Phone numbers", - "Account": "Account", "Set a new account password...": "Set a new account password...", + "Account": "Account", "Language and region": "Language and region", "Theme": "Theme", "Agree to the identity server (%(serverName)s) Terms of Service to allow yourself to be discoverable by email address or phone number.": "Agree to the identity server (%(serverName)s) Terms of Service to allow yourself to be discoverable by email address or phone number.",