Warn about room name and topic not being encrypted

pull/1815/head
Nicolas Werner 3 months ago
parent b86221bdbe
commit c1038a3e4a
No known key found for this signature in database
GPG Key ID: C8D75E610773F2D9
  1. 42
      resources/qml/dialogs/RoomSettingsDialog.qml
  2. 9
      src/ui/RoomSettings.cpp
  3. 2
      src/ui/RoomSettings.h

@ -130,7 +130,7 @@ ApplicationWindow {
color: palette.text color: palette.text
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignHCenter
Layout.maximumWidth: parent.width - (Nheko.paddingSmall * 2) - nameChangeButton.anchors.leftMargin - (nameChangeButton.width * 2) Layout.maximumWidth: parent.width - (Nheko.paddingSmall + roomNameButtons.anchors.leftMargin + roomNameButtons.implicitWidth) * 2
horizontalAlignment: TextEdit.AlignHCenter horizontalAlignment: TextEdit.AlignHCenter
wrapMode: TextEdit.Wrap wrapMode: TextEdit.Wrap
selectByMouse: true selectByMouse: true
@ -144,12 +144,16 @@ ApplicationWindow {
} }
} }
ImageButton { RowLayout {
id: nameChangeButton id: roomNameButtons
visible: roomSettings.canChangeName
anchors.leftMargin: Nheko.paddingSmall anchors.leftMargin: Nheko.paddingSmall
anchors.left: roomName.right anchors.left: roomName.right
anchors.verticalCenter: roomName.verticalCenter anchors.verticalCenter: roomName.verticalCenter
ImageButton {
id: nameChangeButton
visible: roomSettings.canChangeName
hoverEnabled: true hoverEnabled: true
ToolTip.visible: hovered ToolTip.visible: hovered
ToolTip.text: qsTr("Change name of this room") ToolTip.text: qsTr("Change name of this room")
@ -167,6 +171,18 @@ ApplicationWindow {
} }
} }
EncryptionIndicator {
Layout.preferredHeight: 16
Layout.preferredWidth: 16
sourceSize.width: width
sourceSize.height: height
encrypted: true
visible: roomSettings.isEncryptionEnabled && (roomSettings.isRoomNameSet || !roomName.readOnly)
trust: Crypto.Unverified
ToolTip.text: qsTr("Since room state can't be encrypted, make sure no confidential information is stored in the room name!")
}
}
} }
RowLayout { RowLayout {
@ -220,9 +236,13 @@ ApplicationWindow {
} }
RowLayout {
spacing: Nheko.paddingMedium
Layout.alignment: Qt.AlignHCenter
ImageButton { ImageButton {
id: topicChangeButton id: topicChangeButton
Layout.alignment: Qt.AlignHCenter
visible: roomSettings.canChangeTopic visible: roomSettings.canChangeTopic
hoverEnabled: true hoverEnabled: true
ToolTip.visible: hovered ToolTip.visible: hovered
@ -242,6 +262,18 @@ ApplicationWindow {
} }
} }
EncryptionIndicator {
Layout.preferredHeight: 16
Layout.preferredWidth: 16
sourceSize.width: width
sourceSize.height: height
encrypted: true
visible: roomSettings.isEncryptionEnabled && (roomSettings.plainRoomTopic != "" || !roomTopic.readOnly)
trust: Crypto.Unverified
ToolTip.text: qsTr("Since room state can't be encrypted, make sure no confidential information is stored in the room topic!")
}
}
Item { Item {
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignHCenter
id: showMorePlaceholder id: showMorePlaceholder

@ -81,6 +81,15 @@ RoomSettings::RoomSettings(QString roomid, QObject *parent)
this->allowedRoomsModel = new RoomSettingsAllowedRoomsModel(this); this->allowedRoomsModel = new RoomSettingsAllowedRoomsModel(this);
} }
bool
RoomSettings::isRoomNameSet() const
{
return !cache::client()
->getStateEvent<mtx::events::state::Name>(roomid_.toStdString())
.value_or(mtx::events::StateEvent<mtx::events::state::Name>{})
.content.name.empty();
}
QString QString
RoomSettings::roomName() const RoomSettings::roomName() const
{ {

@ -100,6 +100,7 @@ class RoomSettings final : public QObject
Q_PROPERTY(bool supportsKnocking READ supportsKnocking CONSTANT) Q_PROPERTY(bool supportsKnocking READ supportsKnocking CONSTANT)
Q_PROPERTY(bool supportsRestricted READ supportsRestricted CONSTANT) Q_PROPERTY(bool supportsRestricted READ supportsRestricted CONSTANT)
Q_PROPERTY(bool supportsKnockRestricted READ supportsKnockRestricted CONSTANT) Q_PROPERTY(bool supportsKnockRestricted READ supportsKnockRestricted CONSTANT)
Q_PROPERTY(bool isRoomNameSet READ isRoomNameSet NOTIFY roomNameChanged)
Q_PROPERTY( Q_PROPERTY(
QStringList allowedRooms READ allowedRooms WRITE setAllowedRooms NOTIFY allowedRoomsChanged) QStringList allowedRooms READ allowedRooms WRITE setAllowedRooms NOTIFY allowedRoomsChanged)
Q_PROPERTY(RoomSettingsAllowedRoomsModel *allowedRoomsModel MEMBER allowedRoomsModel CONSTANT) Q_PROPERTY(RoomSettingsAllowedRoomsModel *allowedRoomsModel MEMBER allowedRoomsModel CONSTANT)
@ -128,6 +129,7 @@ public:
QString roomAvatarUrl(); QString roomAvatarUrl();
int memberCount() const; int memberCount() const;
int notifications(); int notifications();
bool isRoomNameSet() const;
bool privateAccess() const; bool privateAccess() const;
bool guestAccess() const; bool guestAccess() const;
bool knockingEnabled() const; bool knockingEnabled() const;

Loading…
Cancel
Save