Hide password section if you can't change your password

Fixes https://github.com/vector-im/riot-web/issues/11950
This commit is contained in:
Travis Ralston 2020-01-23 16:29:55 -07:00
parent beb2503542
commit c22bfa84b7
2 changed files with 16 additions and 4 deletions

View file

@ -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 = (
<ChangePassword
className="mx_GeneralUserSettingsTab_changePassword"
rowClassName=""
@ -314,11 +319,18 @@ export default class GeneralUserSettingsTab extends React.Component {
threepidSection = <Spinner />;
}
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 (
<div className="mx_SettingsTab_section mx_GeneralUserSettingsTab_accountSection">
<span className="mx_SettingsTab_subheading">{_t("Account")}</span>
<p className="mx_SettingsTab_subsectionText">
{_t("Set a new account password...")}
{passwordChangeText}
</p>
{passwordChangeForm}
{threepidSection}

View file

@ -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.",