1 files changed, 9 insertions, 0 deletions
diff --git a/src/timeline/RoomlistModel.cpp b/src/timeline/RoomlistModel.cpp
index 455ea94f..cb23a12d 100644
--- a/src/timeline/RoomlistModel.cpp
+++ b/src/timeline/RoomlistModel.cpp
@@ -1100,6 +1100,15 @@ FilteredRoomlistModel::filterAcceptsRow(int sourceRow, const QModelIndex &) cons
.toBool();
}
+ // If it is a preview but it can't be fetched, it is probably an inaccessible private room.
+ // Hide it if the user isn't an admin.
+ auto index = sourceModel()->index(sourceRow, 0);
+ if (sourceModel()->data(index, RoomlistModel::IsPreview).toBool() &&
+ !sourceModel()->data(index, RoomlistModel::IsPreviewFetched).toBool() &&
+ !Permissions(filterStr).canChange(qml_mtx_events::SpaceChild)) {
+ return false;
+ }
+
return true;
} else {
return true;
|