Merge pull request #4362 from matrix-org/t3chguy/private_room_e2ee
Add toggle for e2ee when creating private room
This commit is contained in:
commit
a9a253f27f
3 changed files with 51 additions and 8 deletions
|
@ -15,6 +15,8 @@ limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
.mx_CreateRoomDialog_details {
|
.mx_CreateRoomDialog_details {
|
||||||
|
margin-top: 15px;
|
||||||
|
|
||||||
.mx_CreateRoomDialog_details_summary {
|
.mx_CreateRoomDialog_details_summary {
|
||||||
outline: none;
|
outline: none;
|
||||||
list-style: none;
|
list-style: none;
|
||||||
|
@ -71,11 +73,19 @@ limitations under the License.
|
||||||
}
|
}
|
||||||
|
|
||||||
.mx_CreateRoomDialog {
|
.mx_CreateRoomDialog {
|
||||||
|
|
||||||
&.mx_Dialog_fixedWidth {
|
&.mx_Dialog_fixedWidth {
|
||||||
width: 450px;
|
width: 450px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.mx_Dialog_content {
|
||||||
|
margin-bottom: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
p,
|
||||||
|
.mx_Field_input label {
|
||||||
|
color: $muted-fg-color;
|
||||||
|
}
|
||||||
|
|
||||||
.mx_SettingsFlag {
|
.mx_SettingsFlag {
|
||||||
display: flex;
|
display: flex;
|
||||||
}
|
}
|
||||||
|
@ -90,5 +100,18 @@ limitations under the License.
|
||||||
flex: 0 0 auto;
|
flex: 0 0 auto;
|
||||||
margin-left: 30px;
|
margin-left: 30px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.mx_CreateRoomDialog_topic {
|
||||||
|
margin-bottom: 36px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mx_Dialog_content > .mx_SettingsFlag {
|
||||||
|
margin-top: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
margin: 0 85px 0 0;
|
||||||
|
font-size: $font-12px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -24,6 +24,7 @@ import withValidation from '../elements/Validation';
|
||||||
import { _t } from '../../../languageHandler';
|
import { _t } from '../../../languageHandler';
|
||||||
import {MatrixClientPeg} from '../../../MatrixClientPeg';
|
import {MatrixClientPeg} from '../../../MatrixClientPeg';
|
||||||
import {Key} from "../../../Keyboard";
|
import {Key} from "../../../Keyboard";
|
||||||
|
import SettingsStore from "../../../settings/SettingsStore";
|
||||||
|
|
||||||
export default createReactClass({
|
export default createReactClass({
|
||||||
displayName: 'CreateRoomDialog',
|
displayName: 'CreateRoomDialog',
|
||||||
|
@ -35,6 +36,7 @@ export default createReactClass({
|
||||||
const config = SdkConfig.get();
|
const config = SdkConfig.get();
|
||||||
return {
|
return {
|
||||||
isPublic: false,
|
isPublic: false,
|
||||||
|
isEncrypted: true,
|
||||||
name: "",
|
name: "",
|
||||||
topic: "",
|
topic: "",
|
||||||
alias: "",
|
alias: "",
|
||||||
|
@ -62,6 +64,11 @@ export default createReactClass({
|
||||||
if (this.state.noFederate) {
|
if (this.state.noFederate) {
|
||||||
createOpts.creation_content = {'m.federate': false};
|
createOpts.creation_content = {'m.federate': false};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!this.state.isPublic && SettingsStore.isFeatureEnabled("feature_cross_signing")) {
|
||||||
|
createOpts.encryption = this.state.isEncrypted;
|
||||||
|
}
|
||||||
|
|
||||||
return opts;
|
return opts;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -127,6 +134,10 @@ export default createReactClass({
|
||||||
this.setState({isPublic});
|
this.setState({isPublic});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
onEncryptedChange(isEncrypted) {
|
||||||
|
this.setState({isEncrypted});
|
||||||
|
},
|
||||||
|
|
||||||
onAliasChange(alias) {
|
onAliasChange(alias) {
|
||||||
this.setState({alias});
|
this.setState({alias});
|
||||||
},
|
},
|
||||||
|
@ -166,11 +177,10 @@ export default createReactClass({
|
||||||
const LabelledToggleSwitch = sdk.getComponent('views.elements.LabelledToggleSwitch');
|
const LabelledToggleSwitch = sdk.getComponent('views.elements.LabelledToggleSwitch');
|
||||||
const RoomAliasField = sdk.getComponent('views.elements.RoomAliasField');
|
const RoomAliasField = sdk.getComponent('views.elements.RoomAliasField');
|
||||||
|
|
||||||
let privateLabel;
|
let publicPrivateLabel;
|
||||||
let publicLabel;
|
|
||||||
let aliasField;
|
let aliasField;
|
||||||
if (this.state.isPublic) {
|
if (this.state.isPublic) {
|
||||||
publicLabel = (<p>{_t("Set a room alias to easily share your room with other people.")}</p>);
|
publicPrivateLabel = (<p>{_t("Set a room alias to easily share your room with other people.")}</p>);
|
||||||
const domain = MatrixClientPeg.get().getDomain();
|
const domain = MatrixClientPeg.get().getDomain();
|
||||||
aliasField = (
|
aliasField = (
|
||||||
<div className="mx_CreateRoomDialog_aliasContainer">
|
<div className="mx_CreateRoomDialog_aliasContainer">
|
||||||
|
@ -178,7 +188,15 @@ export default createReactClass({
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
privateLabel = (<p>{_t("This room is private, and can only be joined by invitation.")}</p>);
|
publicPrivateLabel = (<p>{_t("This room is private, and can only be joined by invitation.")}</p>);
|
||||||
|
}
|
||||||
|
|
||||||
|
let e2eeSection;
|
||||||
|
if (!this.state.isPublic && SettingsStore.isFeatureEnabled("feature_cross_signing")) {
|
||||||
|
e2eeSection = <React.Fragment>
|
||||||
|
<LabelledToggleSwitch label={ _t("Enable end-to-end encryption")} onChange={this.onEncryptedChange} value={this.state.isEncrypted} />
|
||||||
|
<p>{ _t("You can’t disable this later. Bridges & most bots won’t work yet.") }</p>
|
||||||
|
</React.Fragment>;
|
||||||
}
|
}
|
||||||
|
|
||||||
const title = this.state.isPublic ? _t('Create a public room') : _t('Create a private room');
|
const title = this.state.isPublic ? _t('Create a public room') : _t('Create a private room');
|
||||||
|
@ -189,10 +207,10 @@ export default createReactClass({
|
||||||
<form onSubmit={this.onOk} onKeyDown={this._onKeyDown}>
|
<form onSubmit={this.onOk} onKeyDown={this._onKeyDown}>
|
||||||
<div className="mx_Dialog_content">
|
<div className="mx_Dialog_content">
|
||||||
<Field ref={ref => this._nameFieldRef = ref} label={ _t('Name') } onChange={this.onNameChange} onValidate={this.onNameValidate} value={this.state.name} className="mx_CreateRoomDialog_name" />
|
<Field ref={ref => this._nameFieldRef = ref} label={ _t('Name') } onChange={this.onNameChange} onValidate={this.onNameValidate} value={this.state.name} className="mx_CreateRoomDialog_name" />
|
||||||
<Field label={ _t('Topic (optional)') } onChange={this.onTopicChange} value={this.state.topic} />
|
<Field label={ _t('Topic (optional)') } onChange={this.onTopicChange} value={this.state.topic} className="mx_CreateRoomDialog_topic" />
|
||||||
<LabelledToggleSwitch label={ _t("Make this room public")} onChange={this.onPublicChange} value={this.state.isPublic} />
|
<LabelledToggleSwitch label={ _t("Make this room public")} onChange={this.onPublicChange} value={this.state.isPublic} />
|
||||||
{ privateLabel }
|
{ publicPrivateLabel }
|
||||||
{ publicLabel }
|
{ e2eeSection }
|
||||||
{ aliasField }
|
{ aliasField }
|
||||||
<details ref={this.collectDetailsRef} className="mx_CreateRoomDialog_details">
|
<details ref={this.collectDetailsRef} className="mx_CreateRoomDialog_details">
|
||||||
<summary className="mx_CreateRoomDialog_details_summary">{ this.state.detailsOpen ? _t('Hide advanced') : _t('Show advanced') }</summary>
|
<summary className="mx_CreateRoomDialog_details_summary">{ this.state.detailsOpen ? _t('Hide advanced') : _t('Show advanced') }</summary>
|
||||||
|
|
|
@ -1557,6 +1557,8 @@
|
||||||
"Please enter a name for the room": "Please enter a name for the room",
|
"Please enter a name for the room": "Please enter a name for the room",
|
||||||
"Set a room alias to easily share your room with other people.": "Set a room alias to easily share your room with other people.",
|
"Set a room alias to easily share your room with other people.": "Set a room alias to easily share your room with other people.",
|
||||||
"This room is private, and can only be joined by invitation.": "This room is private, and can only be joined by invitation.",
|
"This room is private, and can only be joined by invitation.": "This room is private, and can only be joined by invitation.",
|
||||||
|
"Enable end-to-end encryption": "Enable end-to-end encryption",
|
||||||
|
"You can’t disable this later. Bridges & most bots won’t work yet.": "You can’t disable this later. Bridges & most bots won’t work yet.",
|
||||||
"Create a public room": "Create a public room",
|
"Create a public room": "Create a public room",
|
||||||
"Create a private room": "Create a private room",
|
"Create a private room": "Create a private room",
|
||||||
"Name": "Name",
|
"Name": "Name",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue