From 2de71d4b98b0b04f5f217787856cea64966ba676 Mon Sep 17 00:00:00 2001 From: Audrey Lambert Date: Thu, 9 Mar 2023 11:33:04 +0100 Subject: [PATCH 1/7] UX improvements for XSSS --- patches/patches.json | 35 +++-- .../matrix-react-sdk+3.63.0.patch | 21 +++ src/i18n/strings/tchap_translations.json | 120 ++++++++++-------- 3 files changed, 106 insertions(+), 70 deletions(-) create mode 100644 patches/ux-improvements-for-xsss/matrix-react-sdk+3.63.0.patch diff --git a/patches/patches.json b/patches/patches.json index d880337e30..d39b19b184 100644 --- a/patches/patches.json +++ b/patches/patches.json @@ -132,8 +132,8 @@ ] }, "change-keys-in-room-summary-card": { - "comments" : "add RoomContextMenu and SpacePreferencesDialog under the same patch (same update)", - "github-issue" : "https://github.com/tchapgouv/tchap-web-v4/issues/365", + "comments": "add RoomContextMenu and SpacePreferencesDialog under the same patch (same update)", + "github-issue": "https://github.com/tchapgouv/tchap-web-v4/issues/365", "package": "matrix-react-sdk", "files": [ "src/components/views/right_panel/RoomSummaryCard.tsx", @@ -142,8 +142,8 @@ ] }, "cross-signing-ui": { - "comments" : "reword cross-signing dialogs and remove confirmation dialog", - "github-issue" : "https://github.com/tchapgouv/tchap-web-v4/issues/406", + "comments": "reword cross-signing dialogs and remove confirmation dialog", + "github-issue": "https://github.com/tchapgouv/tchap-web-v4/issues/406", "package": "matrix-react-sdk", "files": [ "src/async-components/views/dialogs/security/CreateSecretStorageDialog.tsx", @@ -153,32 +153,32 @@ ] }, "temp-settings-remove-enable-email-notifications-option": { - "comments" : "Notifications by email is currently not activated on Tchap backend. So we must remove this option.", - "github-issue" : "https://github.com/tchapgouv/tchap-web-v4/issues/405", + "comments": "Notifications by email is currently not activated on Tchap backend. So we must remove this option.", + "github-issue": "https://github.com/tchapgouv/tchap-web-v4/issues/405", "package": "matrix-react-sdk", "files": [ "src/components/views/settings/Notifications.tsx" ] }, "green-confirmation-shield" : { - "comments" : "When finishing a session verification with mobile using the QR code, we need the shield image to be green on all clients.", - "github-issue" : "https://github.com/tchapgouv/tchap-web-v4/issues/432", + "comments": "When finishing a session verification with mobile using the QR code, we need the shield image to be green on all clients.", + "github-issue": "https://github.com/tchapgouv/tchap-web-v4/issues/432", "package": "matrix-react-sdk", "files": [ "res/css/views/rooms/_E2EIcon.pcss" ] }, "fix-inviting-a-person-already-present-in-the-room" : { - "comments" : "When inviting by its email adress someone already in the room, the error message was wrong and break the invitation process", - "github-issue" : "https://github.com/tchapgouv/tchap-web-v4/issues/394", + "comments": "When inviting by its email adress someone already in the room, the error message was wrong and break the invitation process", + "github-issue": "https://github.com/tchapgouv/tchap-web-v4/issues/394", "package": "matrix-react-sdk", "files": [ "src/utils/MultiInviter.ts" ] }, "activate-cross-signing-and-secure-storage-js": { - "comments" : "introduce a feature flag for activating cross signing and secure storage", - "github-issue" : "https://github.com/tchapgouv/tchap-web-v4/issues/433", + "comments": "introduce a feature flag for activating cross signing and secure storage", + "github-issue": "https://github.com/tchapgouv/tchap-web-v4/issues/433", "package": "matrix-js-sdk", "files": [ "src/client.ts" @@ -186,7 +186,7 @@ }, "activate-cross-signing-and-secure-storage-react": { "comments" : "introduce a feature flag for activating cross signing and secure storage (unify previous patches)", - "github-issue" : "https://github.com/tchapgouv/tchap-web-v4/issues/433", + "github-issue": "https://github.com/tchapgouv/tchap-web-v4/issues/433", "package": "matrix-react-sdk", "files": [ "src/components/views/settings/SecureBackupPanel.tsx", @@ -196,11 +196,18 @@ ] }, "add-a-help-tab-in-menu-to-redirect-to-external-tchap-faq": { - "github-issue" : "https://github.com/tchapgouv/tchap-web-v4/issues/395", + "github-issue": "https://github.com/tchapgouv/tchap-web-v4/issues/395", "package": "matrix-react-sdk", "files": [ "src/components/structures/UserMenu.tsx", "res/css/structures/_UserMenu.pcss" ] + }, + "ux-improvements-for-xsss": { + "github-issue": "https://github.com/tchapgouv/tchap-web-v4/issues/442", + "package": "matrix-react-sdk", + "files": [ + "src/components/views/dialogs/security/AccessSecretStorageDialog.tsx" + ] } } diff --git a/patches/ux-improvements-for-xsss/matrix-react-sdk+3.63.0.patch b/patches/ux-improvements-for-xsss/matrix-react-sdk+3.63.0.patch new file mode 100644 index 0000000000..fbf9bb2372 --- /dev/null +++ b/patches/ux-improvements-for-xsss/matrix-react-sdk+3.63.0.patch @@ -0,0 +1,21 @@ +diff --git a/node_modules/matrix-react-sdk/src/components/views/dialogs/security/AccessSecretStorageDialog.tsx b/node_modules/matrix-react-sdk/src/components/views/dialogs/security/AccessSecretStorageDialog.tsx +index 586ce4a..1c0942c 100644 +--- a/node_modules/matrix-react-sdk/src/components/views/dialogs/security/AccessSecretStorageDialog.tsx ++++ b/node_modules/matrix-react-sdk/src/components/views/dialogs/security/AccessSecretStorageDialog.tsx +@@ -428,6 +428,7 @@ export default class AccessSecretStorageDialog extends React.PureComponent + + {recoveryKeyFeedback} ++ {/* :TCHAP: hide for csss feature + ++ :end TCHAP ++ */} + + + ); diff --git a/src/i18n/strings/tchap_translations.json b/src/i18n/strings/tchap_translations.json index 3ac4d311b8..9faefa0d0e 100644 --- a/src/i18n/strings/tchap_translations.json +++ b/src/i18n/strings/tchap_translations.json @@ -371,8 +371,8 @@ "fr": "Importez vos clés Tchap depuis le fichier sauvegardé" }, "Back up your encryption keys with your account data in case you lose access to your sessions. Your keys will be secured with a unique Security Key.": { - "en": "Back up your encryption keys with your account data in case you lose access to your sessions. Your keys will be secured with a unique Recovery Key.", - "fr": "Sauvegardez vos clés Tchap et les données de votre compte au cas où vous perdiez l’accès à vos sessions. Vos clés seront sécurisées avec une Clé de récupération unique." + "en": "Back up your encryption keys with your account data in case you lose access to your sessions. Your keys will be secured with a unique Recovery Code.", + "fr": "Sauvegardez vos clés Tchap et les données de votre compte au cas où vous perdiez l’accès à vos sessions. Vos clés seront sécurisées avec un Code de récupération unique." }, "Thread": { "en": "Thread", @@ -427,8 +427,8 @@ "fr": "Vous pouvez aussi configurer la sauvegarde automatique des messages et gérer vos clés depuis les paramètres." }, "Set up Secure Backup": { - "en": "Set up Secure Backup", - "fr": "Activer la sauvegarde automatique des messages" + "en": "Activate", + "fr": "Activer" }, "Email": { "en": "Email", @@ -600,28 +600,28 @@ "fr": "Envoyer le mail" }, "This is your recovery key" : { - "fr": "Voici votre clé de récupération. Cette clé vous permet de sauvegarder automatiquement vos messages et de les récupérer à tout moment.", - "en": "This is your recovery key. This key allows you to backup automatically your messages and restore whenever you want" + "fr": "Voici votre code de récupération. Ce code vous permet de sauvegarder automatiquement vos messages et de les récupérer à tout moment.", + "en": "This is your recovery code. This code allows you to backup automatically your messages and restore whenever you want" }, "Store your Security Key somewhere safe, like a password manager or a safe, as it's used to safeguard your encrypted data.": { "fr": "Conservez votre clé dans un endroit sûr, par exemple : votre gestionnaire de mot de passe sur un papier dans une armoire ou un tiroir fermé à clé.", "en": "Store your Recovery Key key somewhere safe, like a password manager or a safe" }, "Safeguard against losing access to encrypted messages & data": { - "fr" : "Activez votre clé de récupération pour ne jamais perdre vos messages", - "en" : "Activate your Recovery Key key to never lose your messages" + "fr" : "Activez votre code de récupération pour ne jamais perdre vos messages", + "en" : "Activate your Recovery Code key to never lose your messages" }, "Activate": { "fr" : "Activer", "en" : "Activate" }, "Security Key": { - "fr": "Clé de récupération", - "en": "Recovery Key" + "fr": "Code de récupération", + "en": "Recovery Code" }, "Verify with Security Key": { - "fr": "Vérifiez avec une clé de récupération", - "en": "Verify with Recovery Key" + "fr": "Vérifier avec un code de récupération", + "en": "Verify with Recovery Code" }, "Your new device is now verified. It has access to your encrypted messages, and other users will see it as trusted.": { "fr": "Votre nouvel appareil est maintenant vérifié. Il a accès à vos messages chiffrés et les autres utilisateurs le verront comme fiable.", @@ -636,95 +636,103 @@ "en": "Use automatic Backup" }, "Use your Security Key to continue.": { - "fr": "Utilisez votre clé de récupération pour continuer.", - "en": "Use your Recovery Key to continue." + "fr": "Utilisez votre code de récupération pour continuer.", + "en": "Use your Recovery Code to continue." }, "Generate a Security Key": { - "fr": "Générer une clé de récupération", - "en": "Generate a Recovery Key" + "fr": "Générer un code de récupération", + "en": "Generate a Recovery Code" }, "Use a secret phrase only you know, and optionally save a Security Key to use for backup.": { - "fr": "Utilisez une phrase secrète que vous êtes seul à connaître et enregistrez éventuellement une clé de récupération à utiliser pour la sauvegarde.", - "en": "Use a secret phrase only you know, and optionally save a Recovery Key to use for backup." + "fr": "Utilisez une phrase secrète que vous êtes seul à connaître et enregistrez éventuellement un code de récupération à utiliser pour la sauvegarde.", + "en": "Use a secret phrase only you know, and optionally save a Recovery Code to use for backup." }, "Save your Security Key": { - "fr": "Sauvegarder votre clé de récupération", - "en": "Save your Recovery Key" + "fr": "Sauvegarder votre code de récupération", + "en": "Save your Recovery Code" }, "This session has detected that your Security Phrase and key for Secure Messages have been removed.": { - "fr": "Cette session a détecté que votre phrase secrète et clé de récupération pour les messages sécurisés ont été supprimées.", - "en": "This session has detected that your Security Phrase and key for Secure Messages have been removed." + "fr": "Cette session a détecté que votre phrase secrète et code de récupération pour les messages sécurisés ont été supprimés.", + "en": "This session has detected that your Security Phrase and code for Secure Messages have been removed." }, "A new Security Phrase and key for Secure Messages have been detected.": { - "fr": "Une nouvelle phrase secrète et clé de récupération pour les messages sécurisés ont été détectées.", - "en": "A new Security Phrase and key for Secure Messages have been detected." + "fr": "Une nouvelle phrase secrète et code de récupération pour les messages sécurisés ont été détectés.", + "en": "A new Security Phrase and code for Secure Messages have been detected." }, "Make a copy of your Security Key": { - "fr": "Faire une copie de votre clé de récupération", - "en": "Make a copy of your Recovery Key" + "fr": "Faire une copie de votre code de récupération", + "en": "Make a copy of your Recovery Code" }, "Secure your backup with a Security Phrase": { - "fr": "Protégez votre sauvegarde avec une clé de récupération", - "en": "Secure your backup with a Security Phrase" + "fr": "Protégez votre sauvegarde avec un code de récupération", + "en": "Secure your backup with a Recovery Code" }, "Your Security Key is in your Downloads folder.": { - "fr": "Votre clé de récupération est dans le répertoire Téléchargements.", - "en": "Your Recovery Key is in your Downloads folder." + "fr": "Votre code de récupération est dans le répertoire Téléchargements.", + "en": "Your Recovery Code is in your Downloads folder." }, "Your Security Key": { - "fr": "Votre clé de récupération", - "en": "Your Recovery Key" + "fr": "Votre code de récupération", + "en": "Your Recovery Code" }, "Your Security Key is a safety net - you can use it to restore access to your encrypted messages if you forget your Security Phrase.": { - "fr": "Votre clé de récupération est un filet de sécurité. Vous pouvez l’utiliser pour retrouver l’accès à vos messages chiffrés si vous oubliez votre phrase secrète.", - "en": "Your Recovery Key is a safety net - you can use it to restore access to your encrypted messages if you forget your Security Phrase." + "fr": "Votre code de récupération est un filet de sécurité. Vous pouvez l’utiliser pour retrouver l’accès à vos messages chiffrés si vous oubliez votre phrase secrète.", + "en": "Your Recovery Code is a safety net - you can use it to restore access to your encrypted messages if you forget your Security Phrase." }, "Set up with a Security Key": { - "fr": "Configurer avec une clé de récupération", - "en": "Set up with a Recovery Key" + "fr": "Configurer avec un code de récupération", + "en": "Set up with a Recovery Code" }, "If you've forgotten your Security Key you can ": { - "fr": "Si vous avez oublié votre clé de récupération, vous pouvez ", - "en": "If you've forgotten your Recovery Key you can " + "fr": "Si vous avez oublié votre code de récupération, vous pouvez ", + "en": "If you've forgotten your Recovery Code you can " }, "Access your secure message history and set up secure messaging by entering your Security Key.": { - "fr": "Accédez à votre historique de messages chiffrés et mettez en place la messagerie sécurisée en entrant votre clé de récupération.", - "en": "Access your secure message history and set up secure messaging by entering your Recovery Key." + "fr": "Accédez à votre historique de messages chiffrés et mettez en place la messagerie sécurisée en entrant votre code de récupération.", + "en": "Access your secure message history and set up secure messaging by entering your Recovery Code." }, "Enter Security Key": { - "fr": "Saisir la clé de récupération", - "en": "Enter Recovery Key" + "fr": "Saisir le code de récupération", + "en": "Enter Recovery Code" }, "If you've forgotten your Security Phrase you can use your Security Key or set up new recovery options": { - "fr": "Si vous avez oublié votre phrase secrète vous pouvez utiliser votre clé de récupération ou définir de nouvelles options de récupération", - "en": "If you've forgotten your Security Phrase you can use your Recovery Key or set up new recovery options" + "fr": "Si vous avez oublié votre phrase secrète vous pouvez utiliser votre code de récupération ou définir de nouvelles options de récupération", + "en": "If you've forgotten your Security Phrase you can use your Recovery Code or set up new recovery options" }, "Backup could not be decrypted with this Security Key: please verify that you entered the correct Security Key.": { - "fr": "La sauvegarde n’a pas pu être déchiffrée avec cette clé de sécurité : merci de vérifier que vous avez saisi la bonne clé de récupération.", - "en": "Backup could not be decrypted with this Recovery Key: please verify that you entered the correct Recovery Key." + "fr": "La sauvegarde n’a pas pu être déchiffrée avec cette clé de sécurité : merci de vérifier que vous avez saisi le bon code de récupération.", + "en": "Backup could not be decrypted with this Recovery Key: please verify that you entered the correct Recovery Code." }, "Please only proceed if you're sure you've lost all of your other devices and your security key.": { - "fr": "Veuillez ne continuer que si vous êtes certain d’avoir perdu tous vos autres appareils et votre clé de récupération.", - "en": "Please only proceed if you're sure you've lost all of your other devices and your recovery key." + "fr": "Veuillez ne continuer que si vous êtes certain d’avoir perdu tous vos autres appareils et votre code de récupération.", + "en": "Please only proceed if you're sure you've lost all of your other devices and your recovery code." }, "Verify with Security Key or Phrase": { - "fr": "Vérifier avec une clé de récupération ou une phrase", - "en": "Verify with Recovery Key or Phrase" + "fr": "Vérifier avec un code de récupération ou une phrase", + "en": "Verify with Recovery Code or Phrase" }, "It looks like you don't have a Security Key or any other devices you can verify against. This device will not be able to access old encrypted messages. In order to verify your identity on this device, you'll need to reset your verification keys.": { - "fr": "Il semblerait que vous n’avez pas de clé de récupération ou d’autres appareils pour faire la vérification. Cet appareil ne pourra pas accéder aux anciens messages chiffrés. Afin de vérifier votre identité sur cet appareil, vous devrez réinitialiser vos clés de vérifications.", - "en": "It looks like you don't have a Recovery Key or any other devices you can verify against. This device will not be able to access old encrypted messages. In order to verify your identity on this device, you'll need to reset your verification keys." + "fr": "Il semblerait que vous n’avez pas de code de récupération ou d’autres appareils pour faire la vérification. Cet appareil ne pourra pas accéder aux anciens messages chiffrés. Afin de vérifier votre identité sur cet appareil, vous devrez réinitialiser vos clés de vérifications.", + "en": "It looks like you don't have a Recovery Code or any other devices you can verify against. This device will not be able to access old encrypted messages. In order to verify your identity on this device, you'll need to reset your verification keys." }, "Enter your Security Phrase or to continue.": { - "fr": "Saisissez votre phrase de sécurité ou pour continuer.", - "en": "Enter your Security Phrase or to continue." + "fr": "Saisissez votre phrase de sécurité ou pour continuer.", + "en": "Enter your Security Phrase or to continue." }, "We'll generate a Security Key for you to store somewhere safe, like a password manager or a safe.": { - "fr": "Nous génèrerons une clé de récupération que vous devrez stocker dans un endroit sûr, comme un gestionnaire de mots de passe ou un coffre.", - "en": "We'll generate a Recovery Key for you to store somewhere safe, like a password manager or a safe." + "fr": "Nous génèrerons un code de récupération que vous devrez stocker dans un endroit sûr, comme un gestionnaire de mots de passe ou un coffre.", + "en": "We'll generate a Recovery Code for you to store somewhere safe, like a password manager or a safe." }, "User is already in the room": { "fr": "Cette personne est déjà dans le salon.", "en": "User is already in the room." + }, + "Set up": { + "fr": "Activer", + "en": "Activate" + }, + "Connect this session to Key Backup": { + "fr": "Vérifier cette session", + "en": "Verify this session" } } From 1765f5e6428f992052ad7eba577453b1d81bde39 Mon Sep 17 00:00:00 2001 From: Audrey Lambert Date: Fri, 10 Mar 2023 11:38:47 +0100 Subject: [PATCH 2/7] Change wording in secury backup panel and simplify text --- .../matrix-react-sdk+3.63.0.patch | 80 +++++++++++++++++-- src/i18n/strings/tchap_translations.json | 4 + 2 files changed, 77 insertions(+), 7 deletions(-) diff --git a/patches/activate-cross-signing-and-secure-storage-react/matrix-react-sdk+3.63.0.patch b/patches/activate-cross-signing-and-secure-storage-react/matrix-react-sdk+3.63.0.patch index 21d0002d4b..efe9be2c54 100644 --- a/patches/activate-cross-signing-and-secure-storage-react/matrix-react-sdk+3.63.0.patch +++ b/patches/activate-cross-signing-and-secure-storage-react/matrix-react-sdk+3.63.0.patch @@ -1,5 +1,5 @@ diff --git a/node_modules/matrix-react-sdk/src/components/structures/MatrixChat.tsx b/node_modules/matrix-react-sdk/src/components/structures/MatrixChat.tsx -index 97d623a..2a02d90 100644 +index 97d623a..ed0daf5 100644 --- a/node_modules/matrix-react-sdk/src/components/structures/MatrixChat.tsx +++ b/node_modules/matrix-react-sdk/src/components/structures/MatrixChat.tsx @@ -32,6 +32,8 @@ import { throttle } from "lodash"; @@ -28,7 +28,7 @@ index 97d623a..2a02d90 100644 + //this listener can be forced with forceLegacyIncomingRoomKeyVerification + //or is added only if the xs is not active + if(TchapUIFeature.forceLegacyIncomingRoomKeyVerification || -+ !TchapUIFeature.isCrossSigningAndSecureStorageActive()){ ++ !TchapUIFeature.isCrossSigningAndSecureStorageActive){ + const krh = new KeyRequestHandler(cli); + cli.on(CryptoEvent.RoomKeyRequest, (req) => { + krh.handleKeyRequest(req); @@ -44,7 +44,7 @@ index 97d623a..2a02d90 100644 if (MatrixClientPeg.get().isCryptoEnabled()) { const blacklistEnabled = SettingsStore.getValueAt( diff --git a/node_modules/matrix-react-sdk/src/components/views/settings/CrossSigningPanel.tsx b/node_modules/matrix-react-sdk/src/components/views/settings/CrossSigningPanel.tsx -index b04714e..8adbba3 100644 +index b04714e..30c9c24 100644 --- a/node_modules/matrix-react-sdk/src/components/views/settings/CrossSigningPanel.tsx +++ b/node_modules/matrix-react-sdk/src/components/views/settings/CrossSigningPanel.tsx @@ -28,6 +28,7 @@ import ConfirmDestroyCrossSigningDialog from "../dialogs/security/ConfirmDestroy @@ -60,7 +60,7 @@ index b04714e..8adbba3 100644 } + // :TCHAP: hide cross-signing actions if cross-signing is not supported -+ if (!TchapUIFeature.isCrossSigningAndSecureStorageActive()) { ++ if (!TchapUIFeature.isCrossSigningAndSecureStorageActive) { + actionRow = null; + } + // end :TCHAP: @@ -115,7 +115,7 @@ index 56fdb5e..d67fb6d 100644 return this.state.crossSigningInfo .checkDeviceTrust(this.state.crossSigningInfo, deviceInfo, false, true) diff --git a/node_modules/matrix-react-sdk/src/components/views/settings/SecureBackupPanel.tsx b/node_modules/matrix-react-sdk/src/components/views/settings/SecureBackupPanel.tsx -index 2e6e6fb..dae664a 100644 +index 2e6e6fb..4eb56f2 100644 --- a/node_modules/matrix-react-sdk/src/components/views/settings/SecureBackupPanel.tsx +++ b/node_modules/matrix-react-sdk/src/components/views/settings/SecureBackupPanel.tsx @@ -30,6 +30,7 @@ import AccessibleButton from "../elements/AccessibleButton"; @@ -126,16 +126,82 @@ index 2e6e6fb..dae664a 100644 interface IState { loading: boolean; -@@ -460,6 +461,12 @@ export default class SecureBackupPanel extends React.PureComponent<{}, IState> { +@@ -244,25 +245,27 @@ export default class SecureBackupPanel extends React.PureComponent<{}, IState> { + if (MatrixClientPeg.get().getKeyBackupEnabled()) { + statusDescription =

✅ {_t("This session is backing up your keys. ")}

; + } else { +- statusDescription = ( +- <> +-

+- {_t( +- "This session is not backing up your keys, " + +- "but you do have an existing backup you can restore from " + +- "and add to going forward.", +- {}, +- { b: (sub) => {sub} }, +- )} +-

+-

+- {_t( +- "Connect this session to key backup before signing out to avoid " + +- "losing any keys that may only be on this session.", +- )} +-

+- +- ); ++ // :TCHAP remove unecessary complex text ++ // statusDescription = ( ++ // <> ++ //

++ // {_t( ++ // "This session is not backing up your keys, " + ++ // "but you do have an existing backup you can restore from " + ++ // "and add to going forward.", ++ // {}, ++ // { b: (sub) => {sub} }, ++ // )} ++ //

++ //

++ // {_t( ++ // "Connect this session to key backup before signing out to avoid " + ++ // "losing any keys that may only be on this session.", ++ // )} ++ //

++ // ++ // ); ++ // :end TCHAP + restoreButtonCaption = _t("Connect this session to Key Backup"); + } + +@@ -460,17 +463,30 @@ export default class SecureBackupPanel extends React.PureComponent<{}, IState> { let actionRow; if (actions.length) { actionRow =
{actions}
; + // :TCHAP: hide action buttons if secure storage is not supported + // actionRow =
{actions}
; -+ if (!TchapUIFeature.isCrossSigningAndSecureStorageActive()) { ++ if (!TchapUIFeature.isCrossSigningAndSecureStorageActive) { + actionRow = null; + } + // end :TCHAP: } return ( +
+-

++ {/* TCHAP change complex text to simpler one ++

+ {_t( + "Back up your encryption keys with your account data in case you " + + "lose access to your sessions. Your keys will be secured with a " + + "unique Security Key.", + )} +

++ */} ++

++ {_t("This function allows you to save your messages automatically and retrieve them anytime thanks to a recovery Code.")} ++

++ {/* end TCHAP */} ++ + {statusDescription} +
+ {_t("Advanced")} diff --git a/src/i18n/strings/tchap_translations.json b/src/i18n/strings/tchap_translations.json index 9faefa0d0e..988315accb 100644 --- a/src/i18n/strings/tchap_translations.json +++ b/src/i18n/strings/tchap_translations.json @@ -374,6 +374,10 @@ "en": "Back up your encryption keys with your account data in case you lose access to your sessions. Your keys will be secured with a unique Recovery Code.", "fr": "Sauvegardez vos clés Tchap et les données de votre compte au cas où vous perdiez l’accès à vos sessions. Vos clés seront sécurisées avec un Code de récupération unique." }, + "This function allows you to save your messages automatically and retrieve them anytime thanks to a recovery Code.": { + "en": "This function allows you to save your messages automatically and retrieve them anytime thanks to a recovery Code.", + "fr": "Cette fonction vous permet de sauvegarder automatiquement vos messages et de les récupérer à tout moment à l’aide d’un Code de récupération." + }, "Thread": { "en": "Thread", "fr": "Discussion" From 621f02bef39a918ce4dee61fb790064a246e0c59 Mon Sep 17 00:00:00 2001 From: Audrey Lambert Date: Tue, 14 Mar 2023 11:46:32 +0100 Subject: [PATCH 3/7] Modifs wording mistakes and fonction parenthesis --- .../matrix-react-sdk+3.63.0.patch | 12 ++-- src/i18n/strings/tchap_translations.json | 56 +++++++++---------- 2 files changed, 34 insertions(+), 34 deletions(-) diff --git a/patches/activate-cross-signing-and-secure-storage-react/matrix-react-sdk+3.63.0.patch b/patches/activate-cross-signing-and-secure-storage-react/matrix-react-sdk+3.63.0.patch index efe9be2c54..03a62adb3d 100644 --- a/patches/activate-cross-signing-and-secure-storage-react/matrix-react-sdk+3.63.0.patch +++ b/patches/activate-cross-signing-and-secure-storage-react/matrix-react-sdk+3.63.0.patch @@ -1,5 +1,5 @@ diff --git a/node_modules/matrix-react-sdk/src/components/structures/MatrixChat.tsx b/node_modules/matrix-react-sdk/src/components/structures/MatrixChat.tsx -index 97d623a..ed0daf5 100644 +index 97d623a..2a02d90 100644 --- a/node_modules/matrix-react-sdk/src/components/structures/MatrixChat.tsx +++ b/node_modules/matrix-react-sdk/src/components/structures/MatrixChat.tsx @@ -32,6 +32,8 @@ import { throttle } from "lodash"; @@ -28,7 +28,7 @@ index 97d623a..ed0daf5 100644 + //this listener can be forced with forceLegacyIncomingRoomKeyVerification + //or is added only if the xs is not active + if(TchapUIFeature.forceLegacyIncomingRoomKeyVerification || -+ !TchapUIFeature.isCrossSigningAndSecureStorageActive){ ++ !TchapUIFeature.isCrossSigningAndSecureStorageActive()){ + const krh = new KeyRequestHandler(cli); + cli.on(CryptoEvent.RoomKeyRequest, (req) => { + krh.handleKeyRequest(req); @@ -44,7 +44,7 @@ index 97d623a..ed0daf5 100644 if (MatrixClientPeg.get().isCryptoEnabled()) { const blacklistEnabled = SettingsStore.getValueAt( diff --git a/node_modules/matrix-react-sdk/src/components/views/settings/CrossSigningPanel.tsx b/node_modules/matrix-react-sdk/src/components/views/settings/CrossSigningPanel.tsx -index b04714e..30c9c24 100644 +index b04714e..8adbba3 100644 --- a/node_modules/matrix-react-sdk/src/components/views/settings/CrossSigningPanel.tsx +++ b/node_modules/matrix-react-sdk/src/components/views/settings/CrossSigningPanel.tsx @@ -28,6 +28,7 @@ import ConfirmDestroyCrossSigningDialog from "../dialogs/security/ConfirmDestroy @@ -60,7 +60,7 @@ index b04714e..30c9c24 100644 } + // :TCHAP: hide cross-signing actions if cross-signing is not supported -+ if (!TchapUIFeature.isCrossSigningAndSecureStorageActive) { ++ if (!TchapUIFeature.isCrossSigningAndSecureStorageActive()) { + actionRow = null; + } + // end :TCHAP: @@ -115,7 +115,7 @@ index 56fdb5e..d67fb6d 100644 return this.state.crossSigningInfo .checkDeviceTrust(this.state.crossSigningInfo, deviceInfo, false, true) diff --git a/node_modules/matrix-react-sdk/src/components/views/settings/SecureBackupPanel.tsx b/node_modules/matrix-react-sdk/src/components/views/settings/SecureBackupPanel.tsx -index 2e6e6fb..4eb56f2 100644 +index 2e6e6fb..e1fbe50 100644 --- a/node_modules/matrix-react-sdk/src/components/views/settings/SecureBackupPanel.tsx +++ b/node_modules/matrix-react-sdk/src/components/views/settings/SecureBackupPanel.tsx @@ -30,6 +30,7 @@ import AccessibleButton from "../elements/AccessibleButton"; @@ -179,7 +179,7 @@ index 2e6e6fb..4eb56f2 100644 actionRow =
{actions}
; + // :TCHAP: hide action buttons if secure storage is not supported + // actionRow =
{actions}
; -+ if (!TchapUIFeature.isCrossSigningAndSecureStorageActive) { ++ if (!TchapUIFeature.isCrossSigningAndSecureStorageActive()) { + actionRow = null; + } + // end :TCHAP: diff --git a/src/i18n/strings/tchap_translations.json b/src/i18n/strings/tchap_translations.json index 988315accb..de1827b43a 100644 --- a/src/i18n/strings/tchap_translations.json +++ b/src/i18n/strings/tchap_translations.json @@ -376,7 +376,7 @@ }, "This function allows you to save your messages automatically and retrieve them anytime thanks to a recovery Code.": { "en": "This function allows you to save your messages automatically and retrieve them anytime thanks to a recovery Code.", - "fr": "Cette fonction vous permet de sauvegarder automatiquement vos messages et de les récupérer à tout moment à l’aide d’un Code de récupération." + "fr": "Cette fonction vous permet de sauvegarder automatiquement vos messages et de les récupérer à tout moment à l’aide du Code de récupération." }, "Thread": { "en": "Thread", @@ -608,12 +608,12 @@ "en": "This is your recovery code. This code allows you to backup automatically your messages and restore whenever you want" }, "Store your Security Key somewhere safe, like a password manager or a safe, as it's used to safeguard your encrypted data.": { - "fr": "Conservez votre clé dans un endroit sûr, par exemple : votre gestionnaire de mot de passe sur un papier dans une armoire ou un tiroir fermé à clé.", - "en": "Store your Recovery Key key somewhere safe, like a password manager or a safe" + "fr": "Conservez votre clé dans un endroit sûr, par exemple dans votre gestionnaire de mot de passe, sur un papier dans une armoire ou un tiroir fermé à clé.", + "en": "Store your Recovery Code somewhere safe, like a password manager or a safe" }, "Safeguard against losing access to encrypted messages & data": { "fr" : "Activez votre code de récupération pour ne jamais perdre vos messages", - "en" : "Activate your Recovery Code key to never lose your messages" + "en" : "Activate your Recovery code to never lose your messages" }, "Activate": { "fr" : "Activer", @@ -621,11 +621,11 @@ }, "Security Key": { "fr": "Code de récupération", - "en": "Recovery Code" + "en": "Recovery code" }, "Verify with Security Key": { "fr": "Vérifier avec un code de récupération", - "en": "Verify with Recovery Code" + "en": "Verify with Recovery code" }, "Your new device is now verified. It has access to your encrypted messages, and other users will see it as trusted.": { "fr": "Votre nouvel appareil est maintenant vérifié. Il a accès à vos messages chiffrés et les autres utilisateurs le verront comme fiable.", @@ -641,71 +641,71 @@ }, "Use your Security Key to continue.": { "fr": "Utilisez votre code de récupération pour continuer.", - "en": "Use your Recovery Code to continue." + "en": "Use your Recovery code to continue." }, "Generate a Security Key": { "fr": "Générer un code de récupération", - "en": "Generate a Recovery Code" + "en": "Generate a Recovery code" }, "Use a secret phrase only you know, and optionally save a Security Key to use for backup.": { "fr": "Utilisez une phrase secrète que vous êtes seul à connaître et enregistrez éventuellement un code de récupération à utiliser pour la sauvegarde.", - "en": "Use a secret phrase only you know, and optionally save a Recovery Code to use for backup." + "en": "Use a secret phrase only you know, and optionally save a Recovery code to use for backup." }, "Save your Security Key": { "fr": "Sauvegarder votre code de récupération", - "en": "Save your Recovery Code" + "en": "Save your Recovery code" }, "This session has detected that your Security Phrase and key for Secure Messages have been removed.": { "fr": "Cette session a détecté que votre phrase secrète et code de récupération pour les messages sécurisés ont été supprimés.", "en": "This session has detected that your Security Phrase and code for Secure Messages have been removed." }, "A new Security Phrase and key for Secure Messages have been detected.": { - "fr": "Une nouvelle phrase secrète et code de récupération pour les messages sécurisés ont été détectés.", - "en": "A new Security Phrase and code for Secure Messages have been detected." + "fr": "Un nouveau code de récupération pour les messages sécurisés a été détecté.", + "en": "A new Recovery code for Secure Messages has been detected." }, "Make a copy of your Security Key": { "fr": "Faire une copie de votre code de récupération", - "en": "Make a copy of your Recovery Code" + "en": "Make a copy of your Recovery code" }, "Secure your backup with a Security Phrase": { "fr": "Protégez votre sauvegarde avec un code de récupération", - "en": "Secure your backup with a Recovery Code" + "en": "Secure your backup with a Recovery code" }, "Your Security Key is in your Downloads folder.": { "fr": "Votre code de récupération est dans le répertoire Téléchargements.", - "en": "Your Recovery Code is in your Downloads folder." + "en": "Your Recovery code is in your Downloads folder." }, "Your Security Key": { "fr": "Votre code de récupération", - "en": "Your Recovery Code" + "en": "Your Recovery code" }, "Your Security Key is a safety net - you can use it to restore access to your encrypted messages if you forget your Security Phrase.": { "fr": "Votre code de récupération est un filet de sécurité. Vous pouvez l’utiliser pour retrouver l’accès à vos messages chiffrés si vous oubliez votre phrase secrète.", - "en": "Your Recovery Code is a safety net - you can use it to restore access to your encrypted messages if you forget your Security Phrase." + "en": "Your Recovery code is a safety net - you can use it to restore access to your encrypted messages if you forget your Security Phrase." }, "Set up with a Security Key": { "fr": "Configurer avec un code de récupération", - "en": "Set up with a Recovery Code" + "en": "Set up with a Recovery code" }, "If you've forgotten your Security Key you can ": { "fr": "Si vous avez oublié votre code de récupération, vous pouvez ", - "en": "If you've forgotten your Recovery Code you can " + "en": "If you've forgotten your Recovery code you can " }, "Access your secure message history and set up secure messaging by entering your Security Key.": { "fr": "Accédez à votre historique de messages chiffrés et mettez en place la messagerie sécurisée en entrant votre code de récupération.", - "en": "Access your secure message history and set up secure messaging by entering your Recovery Code." + "en": "Access your secure message history and set up secure messaging by entering your Recovery code." }, "Enter Security Key": { "fr": "Saisir le code de récupération", - "en": "Enter Recovery Code" + "en": "Enter Recovery code" }, "If you've forgotten your Security Phrase you can use your Security Key or set up new recovery options": { "fr": "Si vous avez oublié votre phrase secrète vous pouvez utiliser votre code de récupération ou définir de nouvelles options de récupération", - "en": "If you've forgotten your Security Phrase you can use your Recovery Code or set up new recovery options" + "en": "If you've forgotten your Security Phrase you can use your Recovery code or set up new recovery options" }, "Backup could not be decrypted with this Security Key: please verify that you entered the correct Security Key.": { "fr": "La sauvegarde n’a pas pu être déchiffrée avec cette clé de sécurité : merci de vérifier que vous avez saisi le bon code de récupération.", - "en": "Backup could not be decrypted with this Recovery Key: please verify that you entered the correct Recovery Code." + "en": "Backup could not be decrypted with this Recovery Key: please verify that you entered the correct Recovery code." }, "Please only proceed if you're sure you've lost all of your other devices and your security key.": { "fr": "Veuillez ne continuer que si vous êtes certain d’avoir perdu tous vos autres appareils et votre code de récupération.", @@ -713,19 +713,19 @@ }, "Verify with Security Key or Phrase": { "fr": "Vérifier avec un code de récupération ou une phrase", - "en": "Verify with Recovery Code or Phrase" + "en": "Verify with Recovery code or Phrase" }, "It looks like you don't have a Security Key or any other devices you can verify against. This device will not be able to access old encrypted messages. In order to verify your identity on this device, you'll need to reset your verification keys.": { "fr": "Il semblerait que vous n’avez pas de code de récupération ou d’autres appareils pour faire la vérification. Cet appareil ne pourra pas accéder aux anciens messages chiffrés. Afin de vérifier votre identité sur cet appareil, vous devrez réinitialiser vos clés de vérifications.", - "en": "It looks like you don't have a Recovery Code or any other devices you can verify against. This device will not be able to access old encrypted messages. In order to verify your identity on this device, you'll need to reset your verification keys." + "en": "It looks like you don't have a Recovery code or any other devices you can verify against. This device will not be able to access old encrypted messages. In order to verify your identity on this device, you'll need to reset your verification keys." }, "Enter your Security Phrase or to continue.": { "fr": "Saisissez votre phrase de sécurité ou pour continuer.", - "en": "Enter your Security Phrase or to continue." + "en": "Enter your Security Phrase or to continue." }, "We'll generate a Security Key for you to store somewhere safe, like a password manager or a safe.": { - "fr": "Nous génèrerons un code de récupération que vous devrez stocker dans un endroit sûr, comme un gestionnaire de mots de passe ou un coffre.", - "en": "We'll generate a Recovery Code for you to store somewhere safe, like a password manager or a safe." + "fr": "Nous génèrerons votre code de récupération unique que vous devrez stocker dans un endroit sûr, comme un gestionnaire de mots de passe ou un coffre.", + "en": "We'll generate your unique Recovery code for you to store somewhere safe, like a password manager or a safe." }, "User is already in the room": { "fr": "Cette personne est déjà dans le salon.", From 6942a5a7b63ee943d2f2f033dba70469d1d5badf Mon Sep 17 00:00:00 2001 From: Audrey Lambert Date: Tue, 14 Mar 2023 16:56:14 +0100 Subject: [PATCH 4/7] Remove upload button and variabilize "Sauvegarde automqtique des messages" content --- .../matrix-react-sdk+3.63.0.patch | 37 +++++++++++++++++- .../matrix-react-sdk+3.63.0.patch | 38 ++++++++++++------- 2 files changed, 59 insertions(+), 16 deletions(-) diff --git a/patches/activate-cross-signing-and-secure-storage-react/matrix-react-sdk+3.63.0.patch b/patches/activate-cross-signing-and-secure-storage-react/matrix-react-sdk+3.63.0.patch index 03a62adb3d..a9d97e7261 100644 --- a/patches/activate-cross-signing-and-secure-storage-react/matrix-react-sdk+3.63.0.patch +++ b/patches/activate-cross-signing-and-secure-storage-react/matrix-react-sdk+3.63.0.patch @@ -115,7 +115,7 @@ index 56fdb5e..d67fb6d 100644 return this.state.crossSigningInfo .checkDeviceTrust(this.state.crossSigningInfo, deviceInfo, false, true) diff --git a/node_modules/matrix-react-sdk/src/components/views/settings/SecureBackupPanel.tsx b/node_modules/matrix-react-sdk/src/components/views/settings/SecureBackupPanel.tsx -index 2e6e6fb..e1fbe50 100644 +index 2e6e6fb..9c14b9f 100644 --- a/node_modules/matrix-react-sdk/src/components/views/settings/SecureBackupPanel.tsx +++ b/node_modules/matrix-react-sdk/src/components/views/settings/SecureBackupPanel.tsx @@ -30,6 +30,7 @@ import AccessibleButton from "../elements/AccessibleButton"; @@ -173,7 +173,40 @@ index 2e6e6fb..e1fbe50 100644 restoreButtonCaption = _t("Connect this session to Key Backup"); } -@@ -460,17 +463,30 @@ export default class SecureBackupPanel extends React.PureComponent<{}, IState> { +@@ -420,18 +423,20 @@ export default class SecureBackupPanel extends React.PureComponent<{}, IState> { + ); + } + } else { +- statusDescription = ( +- <> +-

+- {_t( +- "Your keys are not being backed up from this session.", +- {}, +- { b: (sub) => {sub} }, +- )} +-

+-

{_t("Back up your keys before signing out to avoid losing them.")}

+- +- ); ++ // :TCHAP remove unecessary complex text ++ // statusDescription = ( ++ // <> ++ //

++ // {_t( ++ // "Your keys are not being backed up from this session.", ++ // {}, ++ // { b: (sub) => {sub} }, ++ // )} ++ //

++ //

{_t("Back up your keys before signing out to avoid losing them.")}

++ // ++ // ); ++ // :end TCHAP + actions.push( + + {_t("Set up")} +@@ -460,17 +465,30 @@ export default class SecureBackupPanel extends React.PureComponent<{}, IState> { let actionRow; if (actions.length) { actionRow =
{actions}
; diff --git a/patches/ux-improvements-for-xsss/matrix-react-sdk+3.63.0.patch b/patches/ux-improvements-for-xsss/matrix-react-sdk+3.63.0.patch index fbf9bb2372..bb94e63f4b 100644 --- a/patches/ux-improvements-for-xsss/matrix-react-sdk+3.63.0.patch +++ b/patches/ux-improvements-for-xsss/matrix-react-sdk+3.63.0.patch @@ -1,21 +1,31 @@ diff --git a/node_modules/matrix-react-sdk/src/components/views/dialogs/security/AccessSecretStorageDialog.tsx b/node_modules/matrix-react-sdk/src/components/views/dialogs/security/AccessSecretStorageDialog.tsx -index 586ce4a..1c0942c 100644 +index 586ce4a..7d7a735 100644 --- a/node_modules/matrix-react-sdk/src/components/views/dialogs/security/AccessSecretStorageDialog.tsx +++ b/node_modules/matrix-react-sdk/src/components/views/dialogs/security/AccessSecretStorageDialog.tsx -@@ -428,6 +428,7 @@ export default class AccessSecretStorageDialog extends React.PureComponent
++ {/* ++ :TCHAP: hide for csss feature + + {_t("%(securityKey)s or %(recoveryFile)s", { + recoveryFile: "", + securityKey: "", + })} + +-
++
+ + {_t("Upload")} + +-
++ :end TCHAP ++
*/} {recoveryKeyFeedback} -+ {/* :TCHAP: hide for csss feature -+ :end TCHAP -+ */} - - - ); From 61f1a623f4e282f9ca4860d1a8970972ed296ec1 Mon Sep 17 00:00:00 2001 From: olivier Date: Wed, 15 Mar 2023 09:15:09 +0100 Subject: [PATCH 5/7] change label 'Forgotten or lost all recovery methods' --- src/i18n/strings/tchap_translations.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/i18n/strings/tchap_translations.json b/src/i18n/strings/tchap_translations.json index ce334a3d16..aec1bdeb65 100644 --- a/src/i18n/strings/tchap_translations.json +++ b/src/i18n/strings/tchap_translations.json @@ -746,5 +746,9 @@ "Connect this session to Key Backup": { "fr": "Vérifier cette session", "en": "Verify this session" + }, + "Forgotten or lost all recovery methods? Reset all": { + "fr": "Vous avez perdu votre code de récupération ? Générer un nouveau code", + "en": "You have lost your recovery code? Create a new code" } } From 64bbabb3e8efeca1e61fb7f4c268422c4ea1f27b Mon Sep 17 00:00:00 2001 From: Audrey Lambert Date: Thu, 16 Mar 2023 09:40:16 +0100 Subject: [PATCH 6/7] Uncomment secure backup panel statusDescription --- .../matrix-react-sdk+3.63.0.patch | 84 +------------------ 1 file changed, 2 insertions(+), 82 deletions(-) diff --git a/patches/activate-cross-signing-and-secure-storage-react/matrix-react-sdk+3.63.0.patch b/patches/activate-cross-signing-and-secure-storage-react/matrix-react-sdk+3.63.0.patch index a9d97e7261..4f803f7265 100644 --- a/patches/activate-cross-signing-and-secure-storage-react/matrix-react-sdk+3.63.0.patch +++ b/patches/activate-cross-signing-and-secure-storage-react/matrix-react-sdk+3.63.0.patch @@ -115,7 +115,7 @@ index 56fdb5e..d67fb6d 100644 return this.state.crossSigningInfo .checkDeviceTrust(this.state.crossSigningInfo, deviceInfo, false, true) diff --git a/node_modules/matrix-react-sdk/src/components/views/settings/SecureBackupPanel.tsx b/node_modules/matrix-react-sdk/src/components/views/settings/SecureBackupPanel.tsx -index 2e6e6fb..9c14b9f 100644 +index 2e6e6fb..8431907 100644 --- a/node_modules/matrix-react-sdk/src/components/views/settings/SecureBackupPanel.tsx +++ b/node_modules/matrix-react-sdk/src/components/views/settings/SecureBackupPanel.tsx @@ -30,6 +30,7 @@ import AccessibleButton from "../elements/AccessibleButton"; @@ -126,87 +126,7 @@ index 2e6e6fb..9c14b9f 100644 interface IState { loading: boolean; -@@ -244,25 +245,27 @@ export default class SecureBackupPanel extends React.PureComponent<{}, IState> { - if (MatrixClientPeg.get().getKeyBackupEnabled()) { - statusDescription =

✅ {_t("This session is backing up your keys. ")}

; - } else { -- statusDescription = ( -- <> --

-- {_t( -- "This session is not backing up your keys, " + -- "but you do have an existing backup you can restore from " + -- "and add to going forward.", -- {}, -- { b: (sub) => {sub} }, -- )} --

--

-- {_t( -- "Connect this session to key backup before signing out to avoid " + -- "losing any keys that may only be on this session.", -- )} --

-- -- ); -+ // :TCHAP remove unecessary complex text -+ // statusDescription = ( -+ // <> -+ //

-+ // {_t( -+ // "This session is not backing up your keys, " + -+ // "but you do have an existing backup you can restore from " + -+ // "and add to going forward.", -+ // {}, -+ // { b: (sub) => {sub} }, -+ // )} -+ //

-+ //

-+ // {_t( -+ // "Connect this session to key backup before signing out to avoid " + -+ // "losing any keys that may only be on this session.", -+ // )} -+ //

-+ // -+ // ); -+ // :end TCHAP - restoreButtonCaption = _t("Connect this session to Key Backup"); - } - -@@ -420,18 +423,20 @@ export default class SecureBackupPanel extends React.PureComponent<{}, IState> { - ); - } - } else { -- statusDescription = ( -- <> --

-- {_t( -- "Your keys are not being backed up from this session.", -- {}, -- { b: (sub) => {sub} }, -- )} --

--

{_t("Back up your keys before signing out to avoid losing them.")}

-- -- ); -+ // :TCHAP remove unecessary complex text -+ // statusDescription = ( -+ // <> -+ //

-+ // {_t( -+ // "Your keys are not being backed up from this session.", -+ // {}, -+ // { b: (sub) => {sub} }, -+ // )} -+ //

-+ //

{_t("Back up your keys before signing out to avoid losing them.")}

-+ // -+ // ); -+ // :end TCHAP - actions.push( - - {_t("Set up")} -@@ -460,17 +465,30 @@ export default class SecureBackupPanel extends React.PureComponent<{}, IState> { +@@ -460,17 +461,30 @@ export default class SecureBackupPanel extends React.PureComponent<{}, IState> { let actionRow; if (actions.length) { actionRow =
{actions}
; From 7ae30b651cbd7c1b7ecc5ad8654415c93f47b029 Mon Sep 17 00:00:00 2001 From: Audrey Lambert Date: Thu, 16 Mar 2023 11:03:33 +0100 Subject: [PATCH 7/7] Change label change to text change and add parenthesis --- .../matrix-react-sdk+3.63.0.patch | 10 ++---- .../matrix-react-sdk+3.63.0.patch | 33 ++++++++++++++++--- src/i18n/strings/tchap_translations.json | 4 --- 3 files changed, 31 insertions(+), 16 deletions(-) diff --git a/patches/activate-cross-signing-and-secure-storage-react/matrix-react-sdk+3.63.0.patch b/patches/activate-cross-signing-and-secure-storage-react/matrix-react-sdk+3.63.0.patch index 4f803f7265..59adf88a05 100644 --- a/patches/activate-cross-signing-and-secure-storage-react/matrix-react-sdk+3.63.0.patch +++ b/patches/activate-cross-signing-and-secure-storage-react/matrix-react-sdk+3.63.0.patch @@ -115,7 +115,7 @@ index 56fdb5e..d67fb6d 100644 return this.state.crossSigningInfo .checkDeviceTrust(this.state.crossSigningInfo, deviceInfo, false, true) diff --git a/node_modules/matrix-react-sdk/src/components/views/settings/SecureBackupPanel.tsx b/node_modules/matrix-react-sdk/src/components/views/settings/SecureBackupPanel.tsx -index 2e6e6fb..8431907 100644 +index 2e6e6fb..f718552 100644 --- a/node_modules/matrix-react-sdk/src/components/views/settings/SecureBackupPanel.tsx +++ b/node_modules/matrix-react-sdk/src/components/views/settings/SecureBackupPanel.tsx @@ -30,6 +30,7 @@ import AccessibleButton from "../elements/AccessibleButton"; @@ -126,7 +126,7 @@ index 2e6e6fb..8431907 100644 interface IState { loading: boolean; -@@ -460,17 +461,30 @@ export default class SecureBackupPanel extends React.PureComponent<{}, IState> { +@@ -460,17 +461,24 @@ export default class SecureBackupPanel extends React.PureComponent<{}, IState> { let actionRow; if (actions.length) { actionRow =
{actions}
; @@ -141,7 +141,6 @@ index 2e6e6fb..8431907 100644 return (
-

-+ {/* TCHAP change complex text to simpler one +

{_t( "Back up your encryption keys with your account data in case you " + @@ -149,11 +148,6 @@ index 2e6e6fb..8431907 100644 "unique Security Key.", )}

-+ */} -+

-+ {_t("This function allows you to save your messages automatically and retrieve them anytime thanks to a recovery Code.")} -+

-+ {/* end TCHAP */} + {statusDescription}
diff --git a/patches/cross-signing-ui/matrix-react-sdk+3.63.0.patch b/patches/cross-signing-ui/matrix-react-sdk+3.63.0.patch index 2301b03267..8ae7e87468 100644 --- a/patches/cross-signing-ui/matrix-react-sdk+3.63.0.patch +++ b/patches/cross-signing-ui/matrix-react-sdk+3.63.0.patch @@ -108,7 +108,7 @@ index cf0c160..9a970b9 100644 kind="primary" className="mx_Dialog_primary mx_CreateSecretStorageDialog_recoveryKeyButtons_copyBtn" diff --git a/node_modules/matrix-react-sdk/src/components/structures/auth/CompleteSecurity.tsx b/node_modules/matrix-react-sdk/src/components/structures/auth/CompleteSecurity.tsx -index 8da8e5c..746ab0a 100644 +index 8da8e5c..1fdb336 100644 --- a/node_modules/matrix-react-sdk/src/components/structures/auth/CompleteSecurity.tsx +++ b/node_modules/matrix-react-sdk/src/components/structures/auth/CompleteSecurity.tsx @@ -22,6 +22,7 @@ import SetupEncryptionBody from "./SetupEncryptionBody"; @@ -132,16 +132,24 @@ index 8da8e5c..746ab0a 100644 - onClick={this.onSkipClick} + // :tchap: remove onClick={this.onSkipClick} + // add instead -+ onClick={TchapUIFeature.isCrossSigningAndSecureStorageActive ? tchapOnSkipClick : this.onSkipClick} ++ onClick={TchapUIFeature.isCrossSigningAndSecureStorageActive() ? tchapOnSkipClick : this.onSkipClick} + // end :tchap: className="mx_CompleteSecurity_skip" aria-label={_t("Skip verification for now")} /> diff --git a/node_modules/matrix-react-sdk/src/toasts/SetupEncryptionToast.ts b/node_modules/matrix-react-sdk/src/toasts/SetupEncryptionToast.ts -index 5dc32de..c087058 100644 +index 5dc32de..029c6d6 100644 --- a/node_modules/matrix-react-sdk/src/toasts/SetupEncryptionToast.ts +++ b/node_modules/matrix-react-sdk/src/toasts/SetupEncryptionToast.ts -@@ -50,7 +50,9 @@ const getIcon = (kind: Kind) => { +@@ -14,6 +14,7 @@ See the License for the specific language governing permissions and + limitations under the License. + */ + ++import TchapUIFeature from "../../../../src/util/TchapUIFeature"; + import Modal from "../Modal"; + import { _t } from "../languageHandler"; + import DeviceListener from "../DeviceListener"; +@@ -50,7 +51,9 @@ const getIcon = (kind: Kind) => { const getSetupCaption = (kind: Kind) => { switch (kind) { case Kind.SET_UP_ENCRYPTION: @@ -152,3 +160,20 @@ index 5dc32de..c087058 100644 case Kind.UPGRADE_ENCRYPTION: return _t("Upgrade"); case Kind.VERIFY_THIS_SESSION: +@@ -79,6 +82,16 @@ const onReject = () => { + }; + + export const showToast = (kind: Kind) => { ++ /* :TCHAP: hide cross-signing setup toast when feature flag tchap_disable_cross_signing_setup_toast is on */ ++ // if ( ++ // TchapUIFeature.isCrossSigningAndSecureStorageActive() ++ // && TchapUIFeature.isCrossSigningSetupToastDisabled() ++ // && (kind === Kind.SET_UP_ENCRYPTION || kind === Kind.UPGRADE_ENCRYPTION) ++ // ) { ++ // return; ++ // } ++ /* end :TCHAP: */ ++ + if (SecurityCustomisations.setupEncryptionNeeded?.(kind)) { + return; + } diff --git a/src/i18n/strings/tchap_translations.json b/src/i18n/strings/tchap_translations.json index aec1bdeb65..207ed2f189 100644 --- a/src/i18n/strings/tchap_translations.json +++ b/src/i18n/strings/tchap_translations.json @@ -371,10 +371,6 @@ "fr": "Importez vos clés Tchap depuis le fichier sauvegardé" }, "Back up your encryption keys with your account data in case you lose access to your sessions. Your keys will be secured with a unique Security Key.": { - "en": "Back up your encryption keys with your account data in case you lose access to your sessions. Your keys will be secured with a unique Recovery Code.", - "fr": "Sauvegardez vos clés Tchap et les données de votre compte au cas où vous perdiez l’accès à vos sessions. Vos clés seront sécurisées avec un Code de récupération unique." - }, - "This function allows you to save your messages automatically and retrieve them anytime thanks to a recovery Code.": { "en": "This function allows you to save your messages automatically and retrieve them anytime thanks to a recovery Code.", "fr": "Cette fonction vous permet de sauvegarder automatiquement vos messages et de les récupérer à tout moment à l’aide du Code de récupération." },