mirror of https://github.com/vector-im/riot-web
remove "Manually verify all remote sessions" setting (#12706)
* remove "Manually verify all remote sessions" setting And remove all of the advanced encryption settings section, since that was the only setting in there. * yarn i18n * also remove now-unused OrderedMultiController and PushToMatrixClientControllerpull/28217/head
parent
ba7cf60cd8
commit
db95f26ffa
|
@ -1,42 +0,0 @@
|
|||
/*
|
||||
Copyright 2020 The Matrix.org Foundation C.I.C.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
import React from "react";
|
||||
|
||||
import { _t } from "../../../languageHandler";
|
||||
import { SettingLevel } from "../../../settings/SettingLevel";
|
||||
import SettingsStore from "../../../settings/SettingsStore";
|
||||
import SettingsFlag from "../elements/SettingsFlag";
|
||||
import SettingsSubsection, { SettingsSubsectionText } from "./shared/SettingsSubsection";
|
||||
|
||||
const SETTING_MANUALLY_VERIFY_ALL_SESSIONS = "e2ee.manuallyVerifyAllSessions";
|
||||
|
||||
const E2eAdvancedPanel: React.FC = () => {
|
||||
return (
|
||||
<SettingsSubsection heading={_t("settings|security|encryption_section")}>
|
||||
<SettingsFlag name={SETTING_MANUALLY_VERIFY_ALL_SESSIONS} level={SettingLevel.DEVICE} />
|
||||
<SettingsSubsectionText>
|
||||
{_t("settings|security|encryption_individual_verification_mode")}
|
||||
</SettingsSubsectionText>
|
||||
</SettingsSubsection>
|
||||
);
|
||||
};
|
||||
|
||||
export default E2eAdvancedPanel;
|
||||
|
||||
export function isE2eAdvancedPanelPossible(): boolean {
|
||||
return SettingsStore.canSetValue(SETTING_MANUALLY_VERIFY_ALL_SESSIONS, null, SettingLevel.DEVICE);
|
||||
}
|
|
@ -28,7 +28,6 @@ import { SettingLevel } from "../../../../../settings/SettingLevel";
|
|||
import SecureBackupPanel from "../../SecureBackupPanel";
|
||||
import SettingsStore from "../../../../../settings/SettingsStore";
|
||||
import { UIFeature } from "../../../../../settings/UIFeature";
|
||||
import E2eAdvancedPanel, { isE2eAdvancedPanelPossible } from "../../E2eAdvancedPanel";
|
||||
import { ActionPayload } from "../../../../../dispatcher/payloads";
|
||||
import CryptographyPanel from "../../CryptographyPanel";
|
||||
import SettingsFlag from "../../../elements/SettingsFlag";
|
||||
|
@ -361,14 +360,12 @@ export default class SecurityUserSettingsTab extends React.Component<IProps, ISt
|
|||
if (SettingsStore.getValue(UIFeature.AdvancedSettings)) {
|
||||
const ignoreUsersPanel = this.renderIgnoredUsers();
|
||||
const invitesPanel = this.renderManageInvites();
|
||||
const e2ePanel = isE2eAdvancedPanelPossible() ? <E2eAdvancedPanel /> : null;
|
||||
// only show the section if there's something to show
|
||||
if (ignoreUsersPanel || invitesPanel || e2ePanel) {
|
||||
if (ignoreUsersPanel || invitesPanel) {
|
||||
advancedSection = (
|
||||
<SettingsSection heading={_t("common|advanced")}>
|
||||
{ignoreUsersPanel}
|
||||
{invitesPanel}
|
||||
{e2ePanel}
|
||||
</SettingsSection>
|
||||
);
|
||||
}
|
||||
|
|
|
@ -2728,7 +2728,6 @@
|
|||
"dialog_title": "<strong>Settings:</strong> Security & Privacy",
|
||||
"e2ee_default_disabled_warning": "Your server admin has disabled end-to-end encryption by default in private rooms & Direct Messages.",
|
||||
"enable_message_search": "Enable message search in encrypted rooms",
|
||||
"encryption_individual_verification_mode": "Individually verify each session used by a user to mark it as trusted, not trusting cross-signed devices.",
|
||||
"encryption_section": "Encryption",
|
||||
"error_loading_key_backup_status": "Unable to load key backup status",
|
||||
"export_megolm_keys": "Export E2E room keys",
|
||||
|
@ -2747,7 +2746,6 @@
|
|||
"key_backup_inactive": "This session is <b>not backing up your keys</b>, but you do have an existing backup you can restore from and add to going forward.",
|
||||
"key_backup_inactive_warning": "Your keys are <b>not being backed up from this session</b>.",
|
||||
"key_backup_latest_version": "Latest backup version on server:",
|
||||
"manually_verify_all_sessions": "Manually verify all remote sessions",
|
||||
"message_search_disable_warning": "If disabled, messages from encrypted rooms won't appear in search results.",
|
||||
"message_search_disabled": "Securely cache encrypted messages locally for them to appear in search results.",
|
||||
"message_search_enabled": {
|
||||
|
|
|
@ -15,7 +15,6 @@ See the License for the specific language governing permissions and
|
|||
limitations under the License.
|
||||
*/
|
||||
|
||||
import { MatrixClient } from "matrix-js-sdk/src/matrix";
|
||||
import React, { ReactNode } from "react";
|
||||
|
||||
import { _t, _td, TranslationKey } from "../languageHandler";
|
||||
|
@ -24,7 +23,6 @@ import {
|
|||
NotificationsEnabledController,
|
||||
} from "./controllers/NotificationControllers";
|
||||
import ThemeController from "./controllers/ThemeController";
|
||||
import PushToMatrixClientController from "./controllers/PushToMatrixClientController";
|
||||
import ReloadOnChangeController from "./controllers/ReloadOnChangeController";
|
||||
import FontSizeController from "./controllers/FontSizeController";
|
||||
import SystemFontController from "./controllers/SystemFontController";
|
||||
|
@ -33,7 +31,6 @@ import SettingController from "./controllers/SettingController";
|
|||
import { IS_MAC } from "../Keyboard";
|
||||
import UIFeatureController from "./controllers/UIFeatureController";
|
||||
import { UIFeature } from "./UIFeature";
|
||||
import { OrderedMultiController } from "./controllers/OrderedMultiController";
|
||||
import { Layout } from "./enums/Layout";
|
||||
import ReducedMotionController from "./controllers/ReducedMotionController";
|
||||
import IncompatibleController from "./controllers/IncompatibleController";
|
||||
|
@ -1008,18 +1005,6 @@ export const SETTINGS: { [setting: string]: ISetting } = {
|
|||
default: true,
|
||||
controller: new UIFeatureController(UIFeature.Voip),
|
||||
},
|
||||
"e2ee.manuallyVerifyAllSessions": {
|
||||
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,
|
||||
displayName: _td("settings|security|manually_verify_all_sessions"),
|
||||
default: false,
|
||||
controller: new OrderedMultiController([
|
||||
// Apply the feature controller first to ensure that the setting doesn't
|
||||
// show up and can't be toggled. PushToMatrixClientController doesn't
|
||||
// do any overrides anyways.
|
||||
new UIFeatureController(UIFeature.AdvancedEncryption),
|
||||
new PushToMatrixClientController(MatrixClient.prototype.setCryptoTrustCrossSignedDevices, true),
|
||||
]),
|
||||
},
|
||||
"ircDisplayNameWidth": {
|
||||
// We specifically want to have room-device > device so that users may set a device default
|
||||
// with a per-room override.
|
||||
|
|
|
@ -1,59 +0,0 @@
|
|||
/*
|
||||
Copyright 2020 The Matrix.org Foundation C.I.C.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
import SettingController from "./SettingController";
|
||||
import { SettingLevel } from "../SettingLevel";
|
||||
|
||||
/**
|
||||
* Allows for multiple controllers to affect a setting. The first controller
|
||||
* provided to this class which overrides the setting value will affect
|
||||
* the value - other controllers are not called. Change notification handlers
|
||||
* are proxied through to all controllers.
|
||||
*
|
||||
* Similarly, the first controller which indicates that a setting is disabled
|
||||
* will be used - other controllers will not be considered.
|
||||
*/
|
||||
export class OrderedMultiController extends SettingController {
|
||||
public constructor(public readonly controllers: SettingController[]) {
|
||||
super();
|
||||
}
|
||||
|
||||
public getValueOverride(
|
||||
level: SettingLevel,
|
||||
roomId: string,
|
||||
calculatedValue: any,
|
||||
calculatedAtLevel: SettingLevel | null,
|
||||
): any {
|
||||
for (const controller of this.controllers) {
|
||||
const override = controller.getValueOverride(level, roomId, calculatedValue, calculatedAtLevel);
|
||||
if (override !== undefined && override !== null) return override;
|
||||
}
|
||||
return null; // no override
|
||||
}
|
||||
|
||||
public onChange(level: SettingLevel, roomId: string, newValue: any): void {
|
||||
for (const controller of this.controllers) {
|
||||
controller.onChange(level, roomId, newValue);
|
||||
}
|
||||
}
|
||||
|
||||
public get settingDisabled(): boolean {
|
||||
for (const controller of this.controllers) {
|
||||
if (controller.settingDisabled) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
|
@ -1,37 +0,0 @@
|
|||
/*
|
||||
Copyright 2020 The Matrix.org Foundation C.I.C.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
import { MatrixClientPeg } from "../../MatrixClientPeg";
|
||||
import { SettingLevel } from "../SettingLevel";
|
||||
import SettingController from "./SettingController";
|
||||
|
||||
/**
|
||||
* When the value changes, call a setter function on the matrix client with the new value
|
||||
*/
|
||||
export default class PushToMatrixClientController extends SettingController {
|
||||
public constructor(
|
||||
private setter: Function,
|
||||
private inverse: boolean,
|
||||
) {
|
||||
super();
|
||||
}
|
||||
|
||||
public onChange(level: SettingLevel, roomId: string, newValue: any): void {
|
||||
// XXX does this work? This surely isn't necessarily the effective value,
|
||||
// but it's what NotificationsEnabledController does...
|
||||
this.setter.call(MatrixClientPeg.get(), this.inverse ? !newValue : newValue);
|
||||
}
|
||||
}
|
|
@ -404,55 +404,6 @@ exports[`<SecurityUserSettingsTab /> renders security section 1`] = `
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="mx_SettingsSubsection"
|
||||
>
|
||||
<div
|
||||
class="mx_SettingsSubsectionHeading"
|
||||
>
|
||||
<h3
|
||||
class="mx_Heading_h4 mx_SettingsSubsectionHeading_heading"
|
||||
>
|
||||
Encryption
|
||||
</h3>
|
||||
</div>
|
||||
<div
|
||||
class="mx_SettingsSubsection_content"
|
||||
>
|
||||
<div
|
||||
class="mx_SettingsFlag"
|
||||
>
|
||||
<label
|
||||
class="mx_SettingsFlag_label"
|
||||
for="mx_SettingsFlag_QgU2PomxwKpa"
|
||||
>
|
||||
<span
|
||||
class="mx_SettingsFlag_labelText"
|
||||
>
|
||||
Manually verify all remote sessions
|
||||
</span>
|
||||
</label>
|
||||
<div
|
||||
aria-checked="false"
|
||||
aria-disabled="false"
|
||||
aria-label="Manually verify all remote sessions"
|
||||
class="mx_AccessibleButton mx_ToggleSwitch mx_ToggleSwitch_enabled"
|
||||
id="mx_SettingsFlag_QgU2PomxwKpa"
|
||||
role="switch"
|
||||
tabindex="0"
|
||||
>
|
||||
<div
|
||||
class="mx_ToggleSwitch_ball"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="mx_SettingsSubsection_text"
|
||||
>
|
||||
Individually verify each session used by a user to mark it as trusted, not trusting cross-signed devices.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
Loading…
Reference in New Issue