Skip to content
Closed
Original file line number Diff line number Diff line change
Expand Up @@ -74,9 +74,7 @@ test.describe("Roles & Permissions room settings tab", () => {

await settingsGroupAccess.getByText("Private (invite only)").click();
// Element should have automatically set the room to "sharing" history visibility
await expect(
settingsGroupHistory.getByText("Members only (since the point in time of selecting this option)"),
).toBeChecked();
await expect(settingsGroupHistory.getByText("Members (full history)")).toBeChecked();
},
);

Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
58 changes: 41 additions & 17 deletions src/components/views/settings/tabs/room/SecurityRoomSettingsTab.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -419,36 +419,60 @@ export default class SecurityRoomSettingsTab extends React.Component<IProps, ISt
const state = this.props.room.currentState;
const canChangeHistory = state?.mayClientSendStateEvent(EventType.RoomHistoryVisibility, client);

const options = [
{
value: HistoryVisibility.Shared,
label: _t("room_settings|security|history_visibility_shared"),
},
{
// Map 'joined' to 'invited' for display purposes
const displayHistory = history === HistoryVisibility.Joined ? HistoryVisibility.Invited : history;

const isPublicRoom = this.props.room.getJoinRule() === JoinRule.Public;
const isEncrypted = this.state.encrypted;

const options: Array<{ value: HistoryVisibility; label: string }> = [];

// Show "invited" when room's join rule is NOT public OR E2EE is turned on, or if currently selected
if (
!isPublicRoom ||
isEncrypted ||
history === HistoryVisibility.Invited ||
history === HistoryVisibility.Joined
) {
options.push({
value: HistoryVisibility.Invited,
label: _t("room_settings|security|history_visibility_invited"),
},
{
value: HistoryVisibility.Joined,
label: _t("room_settings|security|history_visibility_joined"),
},
];
});
}

// World readable doesn't make sense for encrypted rooms
if (!this.state.encrypted || history === HistoryVisibility.WorldReadable) {
options.unshift({
// Always show "shared" option
options.push({
value: HistoryVisibility.Shared,
label: _t("room_settings|security|history_visibility_shared"),
});

// Show "world_readable" when (is public AND not encrypted) OR currently selected
if ((isPublicRoom && !isEncrypted) || history === HistoryVisibility.WorldReadable) {
options.push({
value: HistoryVisibility.WorldReadable,
label: _t("room_settings|security|history_visibility_world_readable"),
});
}

const description = _t("room_settings|security|history_visibility_warning");
const description = (
<>
{_t(
"room_settings|security|history_visibility_warning",
{},
{
a: (sub) => (
<ExternalLink href="https://element.io/en/help#e2ee-history-sharing">{sub}</ExternalLink>
),
},
)}
</>
);

return (
<SettingsFieldset legend={_t("room_settings|security|history_visibility_legend")} description={description}>
<StyledRadioGroup
name="historyVis"
value={history}
value={displayHistory}
onChange={this.onHistoryRadioToggle}
disabled={!canChangeHistory}
definitions={options}
Expand Down
1 change: 0 additions & 1 deletion src/i18n/strings/cs.json
Original file line number Diff line number Diff line change
Expand Up @@ -2414,7 +2414,6 @@
"error_join_rule_change_unknown": "Neznámá chyba",
"guest_access_warning": "Lidé s podporovanými klienty se budou moci do místnosti připojit, aniž by měli registrovaný účet.",
"history_visibility_invited": "Pouze členové (od chvíle jejich pozvání)",
"history_visibility_joined": "Pouze členové (od chvíle jejich vstupu)",
"history_visibility_legend": "Kdo může číst historii?",
"history_visibility_shared": "Pouze členové (od chvíle vybrání této volby)",
"history_visibility_warning": "Viditelnost stávající historie se nezmění.",
Expand Down
1 change: 0 additions & 1 deletion src/i18n/strings/cy.json
Original file line number Diff line number Diff line change
Expand Up @@ -2387,7 +2387,6 @@
"error_join_rule_change_unknown": "Methiant anhysbys",
"guest_access_warning": "Bydd pobl â chleientiaid a gefnogir yn gallu ymuno â'r ystafell heb fod â chyfrif cofrestredig.",
"history_visibility_invited": "Aelodau yn unig (ers iddynt gael eu gwahodd)",
"history_visibility_joined": "Aelodau yn unig (ers iddynt ymuno)",
"history_visibility_legend": "Pwy all ddarllen hanes?",
"history_visibility_shared": "Aelodau yn unig (ers yr adeg pan ddewiswyd yr opsiwn hwn)",
"history_visibility_warning": "Ni fydd gwelededd hanes presennol yn cael ei newid.",
Expand Down
1 change: 0 additions & 1 deletion src/i18n/strings/da.json
Original file line number Diff line number Diff line change
Expand Up @@ -2073,7 +2073,6 @@
"error_join_rule_change_unknown": "Ukendt fejl",
"guest_access_warning": "Personer med understøttede klienter, vil kunne tilslutte sig rummet uden at have en registreret konto.",
"history_visibility_invited": "Kun medlemmer (siden de blev inviteret)",
"history_visibility_joined": "Kun medlemmer (fra de kom ind)",
"history_visibility_legend": "Hvem kan læse historikken?",
"history_visibility_shared": "Kun medlemmer (siden det tidspunkt, hvor denne indstilling blev valgt)",
"history_visibility_warning": "Synligheden af ​​den eksisterende historik vil ikke blive ændret.",
Expand Down
1 change: 0 additions & 1 deletion src/i18n/strings/de_DE.json
Original file line number Diff line number Diff line change
Expand Up @@ -2405,7 +2405,6 @@
"error_join_rule_change_unknown": "Unbekannter Fehler",
"guest_access_warning": "Personen mit unterstützter Anwendung werden diesem Chat ohne registriertes Konto beitreten können.",
"history_visibility_invited": "Mitglieder (ab Einladung)",
"history_visibility_joined": "Mitglieder (ab Betreten)",
"history_visibility_legend": "Wer kann den bisherigen Verlauf lesen?",
"history_visibility_shared": "Mitglieder",
"history_visibility_warning": "Die Sichtbarkeit des existierenden Nachrichtenverlaufs bleibt unverändert.",
Expand Down
1 change: 0 additions & 1 deletion src/i18n/strings/el.json
Original file line number Diff line number Diff line change
Expand Up @@ -1854,7 +1854,6 @@
"error_join_rule_change_unknown": "Άγνωστο σφάλμα",
"guest_access_warning": "Τα άτομα με υποστηριζόμενες εφαρμογές θα μπορούν να συμμετάσχουν στην αίθουσα χωρίς να έχουν εγγεγραμμένο λογαριασμό.",
"history_visibility_invited": "Μόνο μέλη (από τη στιγμή που προσκλήθηκαν)",
"history_visibility_joined": "Μόνο μέλη (από τη στιγμή που έγιναν μέλη)",
"history_visibility_legend": "Ποιος μπορεί να διαβάσει το ιστορικό;",
"history_visibility_shared": "Μόνο μέλη (από τη στιγμή που ορίστηκε αυτή η επιλογή)",
"history_visibility_warning": "Οι αλλαγές στα άτομα που μπορούν να διαβάσουν το ιστορικό θα ισχύουν μόνο για μελλοντικά μηνύματα σε αυτό το δωμάτιο. Η ορατότητα της υπάρχουσας ιστορίας θα παραμείνει αμετάβλητη.",
Expand Down
9 changes: 4 additions & 5 deletions src/i18n/strings/en_EN.json
Original file line number Diff line number Diff line change
Expand Up @@ -2429,12 +2429,11 @@
"error_join_rule_change_title": "Failed to update the join rules",
"error_join_rule_change_unknown": "Unknown failure",
"guest_access_warning": "People with supported clients will be able to join the room without having a registered account.",
"history_visibility_invited": "Members only (since they were invited)",
"history_visibility_joined": "Members only (since they joined)",
"history_visibility_invited": "Members since invited",
"history_visibility_legend": "Who can read history?",
"history_visibility_shared": "Members only (since the point in time of selecting this option)",
"history_visibility_warning": "The visibility of existing history will not be changed.",
"history_visibility_world_readable": "Anyone",
"history_visibility_shared": "Members (full history)",
"history_visibility_warning": "Changes won't affect past messages, only new ones. <a>Learn more</a>",
"history_visibility_world_readable": "Anyone (history is public)\n",
"join_rule_description": "Decide who can join %(roomName)s.",
"join_rule_invite": "Private (invite only)",
"join_rule_invite_description": "Only invited people can join.",
Expand Down
1 change: 0 additions & 1 deletion src/i18n/strings/eo.json
Original file line number Diff line number Diff line change
Expand Up @@ -1490,7 +1490,6 @@
"error_join_rule_change_unknown": "Nekonata malsukceso",
"guest_access_warning": "Personoj kun subtenataj klientoj povos aliĝi al la ĉambro sen registrita konto.",
"history_visibility_invited": "Nur ĉambranoj (ekde la invito)",
"history_visibility_joined": "Nur ĉambranoj (ekde la aliĝo)",
"history_visibility_legend": "Kiu povas legi la historion?",
"history_visibility_shared": "Nur ĉambranoj (ekde ĉi tiu elekto)",
"history_visibility_warning": "Ŝanĝoj al legebleco de historio nur efektiviĝos por osaj mesaĝoj de ĉi tiu ĉambro. La videbleco de jama historio ne ŝanĝiĝos.",
Expand Down
1 change: 0 additions & 1 deletion src/i18n/strings/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -1982,7 +1982,6 @@
"error_join_rule_change_unknown": "Fallo desconocido",
"guest_access_warning": "Las personas con una aplicación compatible podrán unirse a la sala sin tener que registrar una cuenta.",
"history_visibility_invited": "Solo participantes (desde que fueron invitados)",
"history_visibility_joined": "Solo participantes (desde que se unieron a la sala)",
"history_visibility_legend": "¿Quién puede leer el historial?",
"history_visibility_shared": "Solo participantes (desde el momento en que se selecciona esta opción)",
"history_visibility_warning": "Los cambios que se hagan sobre quién puede leer el historial se aplicarán solo a nuevos mensajes. La visibilidad del historial actual no cambiará.",
Expand Down
15 changes: 10 additions & 5 deletions src/i18n/strings/et.json
Original file line number Diff line number Diff line change
Expand Up @@ -579,6 +579,7 @@
"someone": "Keegi",
"space": "Tühikuklahv",
"spaces": "Kogukonnakeskused",
"state_encryption_enabled": "Katseline olekusündmuste krüptimine on kasutusel",
"sticker": "Kleeps",
"stickerpack": "Kleepsupakk",
"success": "Õnnestus",
Expand Down Expand Up @@ -686,6 +687,8 @@
"join_rule_restricted_label": "Kõik <SpaceName/> kogukonna liikmed saavad seda jututuba leida ning võivad temaga liituda.",
"name_validation_required": "Palun sisesta jututoa nimi",
"room_visibility_label": "Jututoa nähtavus",
"state_encrypted_warning": "Sellega võtad kasutusele olekusündmuste krüptimise, mis võimaldab serverist peita metateabe, nagu jututubade nimed ja teemad. See metateave pole nähtav ka jututoaga hiljem liitujatele ning neile, kelle kliendid ei toeta MSC4362 spetsifikatsiooni.",
"state_encryption_label": "Krüptitud olekusündmused",
"title_private_room": "Loo omavaheline jututuba",
"title_public_room": "Loo avalik jututuba",
"title_video_room": "Loo uus videotuba",
Expand Down Expand Up @@ -1525,6 +1528,8 @@
"dynamic_room_predecessors": "Jututoa dünaamilised eellased",
"dynamic_room_predecessors_description": "Võta kasutusele MSC3946 (jututoa ajaloo aeglane laadimine)",
"element_call_video_rooms": "Element Call videotoad",
"encrypted_state_events": "Krüptitud olekusündmused (MSC4362)",
"encrypted_state_events_description": "Sellega võtad kasutusele olekusündmuste krüptimise, mis võimaldab serverist peita metateabe, nagu jututubade nimed ja teemad. See metateave pole nähtav ka jututoaga hiljem liitujatele ning neile, kelle kliendid ei toeta MSC4362 spetsifikatsiooni.",
"exclude_insecure_devices": "Sõnumite saatmisel ja vastuvõtmisel välista ebaturvalised seadmed",
"exclude_insecure_devices_description": "Kui see režiim on kasutusel, siis krüptitud sõnumeid ei jagata verifitseerimata seadmetega ja verifitseerimata seadmetest saabunud sõnumite puhul näidatakse vaid veateadet. Palun arvesta, et selle töörežiimi puhul sa ilmselt ei saa suhelda kasutajatega, kes pole kõiki oma seadmeid korrektselt verifitseerinud.",
"experimental_description": "Soovid katsetada? Proovi meie uusimaid arendusmõtteid. Need funktsionaalsused pole üldsegi veel valmis, nad võivad toimida puudulikult, võivad muutuda või sootuks lõpetamata jääda. <a>Lisateavet leiad siit</a>.",
Expand Down Expand Up @@ -2424,12 +2429,11 @@
"error_join_rule_change_title": "Liitumisreeglite uuendamine ei õnnestunud",
"error_join_rule_change_unknown": "Määratlemata viga",
"guest_access_warning": "Kõik kes kasutavad sobilikke klientrakendusi, saavad jututoaga liituda ilma kasutajakonto registreerimiseta.",
"history_visibility_invited": "Ainult liikmetele (alates nende kutsumise ajast)",
"history_visibility_joined": "Ainult liikmetele (alates liitumisest)",
"history_visibility_invited": "Liikmetele alates nende kutsumise ajast",
"history_visibility_legend": "Kes võivad lugeda ajalugu?",
"history_visibility_shared": "Ainult liikmetele (alates selle seadistuse kasutuselevõtmisest)",
"history_visibility_warning": "Senise ajaloo nähtavus ei muutu.",
"history_visibility_world_readable": "Kõik kasutajad",
"history_visibility_shared": "Ainult liikmetele (kogu ajalugu)",
"history_visibility_warning": "Muudatused ei mõjuta senise ajaloo nähtavust, vaid uute oma. <a>Lisateave</a>",
"history_visibility_world_readable": "Kõik kasutajad (ajalugu on avalik)\n",
"join_rule_description": "Vali, kes saavad liituda %(roomName)s jututoaga.",
"join_rule_invite": "Privaatne jututuba (eeldab kutset)",
"join_rule_invite_description": "Liitumine toimub vaid kutse alusel.",
Expand Down Expand Up @@ -3558,6 +3562,7 @@
"enabled_dm": "Sõnumid siin vestluses on läbivalt krüptitud. Klõpsides tunnuspilti saad verifitseerida kasutaja %(displayName)s.",
"enabled_local": "Sõnumid siin vestluses on läbivalt krüptitud.",
"parameters_changed": "Mõned krüptimise parameetrid on muutunud.",
"state_enabled": "Selle jututoa sõnumid ja olekusündmused on läbivalt krüptitud. Kui uued kasutajad liituvad, siis saad nad verifitseerida tunnuspildile klõpsates.",
"unsupported": "Selles jututoas kasutatud krüptimine ei ole toetatud."
},
"m.room.guest_access": {
Expand Down
1 change: 0 additions & 1 deletion src/i18n/strings/fa.json
Original file line number Diff line number Diff line change
Expand Up @@ -1343,7 +1343,6 @@
"enable_encryption_confirm_title": "رمزنگاری را فعال می‌کنید؟",
"encryption_permanent": "زمانی که رمزنگاری فعال شود، امکان غیرفعال‌کردن آن برای اتاق وجود ندارد.",
"history_visibility_invited": "فقط اعضاء (از زمانی که دعوت شده‌اند)",
"history_visibility_joined": "فقط اعصاء (از زمانی که به اتاق پیوسته‌اند)",
"history_visibility_legend": "چه افرادی بتوانند تاریخچه اتاق را مشاهده کنند؟",
"history_visibility_shared": "فقط اعضاء (از زمانی که این تنظیم اعمال می‌شود)",
"history_visibility_warning": "تغییر تنظیمات اینکه چه کاربرانی سابقه‌ی پیام‌ها را مشاهده کنند، تنها برای پیام‌های آتی اتاق اعمال میشود. پیام‌های قبلی متناسب با تنظیمات گذشته نمایش داده می‌شوند.",
Expand Down
1 change: 0 additions & 1 deletion src/i18n/strings/fi.json
Original file line number Diff line number Diff line change
Expand Up @@ -1999,7 +1999,6 @@
"error_join_rule_change_unknown": "Tuntematon virhe",
"guest_access_warning": "Käyttäjät, joilla on tuettu asiakasohjelma, voivat liittyä huoneeseen ilman rekisteröityä käyttäjätiliä.",
"history_visibility_invited": "Vain jäsenet (kutsumisestaan lähtien)",
"history_visibility_joined": "Vain jäsenet (liittymisestään lähtien)",
"history_visibility_legend": "Ketkä voivat lukea historiaa?",
"history_visibility_shared": "Vain jäsenet (tämän valinnan tekemisestä lähtien)",
"history_visibility_warning": "Muutokset historian lukuoikeuksiin pätevät vain tuleviin viesteihin tässä huoneessa. Nykyisen historian näkyvyys ei muutu.",
Expand Down
Loading
Loading