passbolt-styleguide 5.1.0 → 5.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/build/css/help.min.css +2 -2
  2. package/build/css/public.min.css +2 -2
  3. package/build/css/themes/default/api_authentication.min.css +2 -2
  4. package/build/css/themes/default/api_cloud.min.css +2 -2
  5. package/build/css/themes/default/api_main.min.css +2 -2
  6. package/build/css/themes/default/api_reports.min.css +2 -2
  7. package/build/css/themes/default/api_webinstaller.min.css +2 -2
  8. package/build/css/themes/default/ext_app.min.css +2 -2
  9. package/build/css/themes/default/ext_authentication.min.css +2 -2
  10. package/build/css/themes/default/ext_external.min.css +2 -2
  11. package/build/css/themes/default/ext_in_form_cta.min.css +2 -2
  12. package/build/css/themes/default/ext_in_form_menu.min.css +2 -2
  13. package/build/css/themes/default/ext_quickaccess.min.css +2 -2
  14. package/build/css/themes/midgar/api_authentication.min.css +2 -2
  15. package/build/css/themes/midgar/api_main.min.css +2 -2
  16. package/build/css/themes/midgar/api_reports.min.css +2 -2
  17. package/build/css/themes/midgar/ext_app.min.css +2 -2
  18. package/build/css/themes/midgar/ext_authentication.min.css +2 -2
  19. package/build/css/themes/midgar/ext_in_form_cta.min.css +2 -2
  20. package/build/css/themes/midgar/ext_in_form_menu.min.css +2 -2
  21. package/build/css/themes/midgar/ext_quickaccess.min.css +2 -2
  22. package/package.json +1 -1
  23. package/src/locales/es-ES/common.json +11 -11
  24. package/src/locales/fr-FR/common.json +13 -13
  25. package/src/locales/ko-KR/common.json +1 -1
  26. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsDescription.js +1 -1
  27. package/src/react-extension/components/Share/ShareDialog.js +21 -6
  28. package/src/react-extension/components/Share/ShareDialog.test.js +39 -2
  29. package/src/react-extension/contexts/ResourceWorkspaceContext.js +36 -4
@@ -1,7 +1,7 @@
1
1
  /**!
2
2
  * @name passbolt-styleguide
3
- * @version v5.1.0
4
- * @date 2025-05-07
3
+ * @version v5.1.2
4
+ * @date 2025-05-12
5
5
  * @copyright Copyright 2023 Passbolt SA
6
6
  * @source https://github.com/passbolt/passbolt_styleguide
7
7
  * @license AGPL-3.0
@@ -1,7 +1,7 @@
1
1
  /**!
2
2
  * @name passbolt-styleguide
3
- * @version v5.1.0
4
- * @date 2025-05-07
3
+ * @version v5.1.2
4
+ * @date 2025-05-12
5
5
  * @copyright Copyright 2023 Passbolt SA
6
6
  * @source https://github.com/passbolt/passbolt_styleguide
7
7
  * @license AGPL-3.0
@@ -1,7 +1,7 @@
1
1
  /**!
2
2
  * @name passbolt-styleguide
3
- * @version v5.1.0
4
- * @date 2025-05-07
3
+ * @version v5.1.2
4
+ * @date 2025-05-12
5
5
  * @copyright Copyright 2023 Passbolt SA
6
6
  * @source https://github.com/passbolt/passbolt_styleguide
7
7
  * @license AGPL-3.0
@@ -1,7 +1,7 @@
1
1
  /**!
2
2
  * @name passbolt-styleguide
3
- * @version v5.1.0
4
- * @date 2025-05-07
3
+ * @version v5.1.2
4
+ * @date 2025-05-12
5
5
  * @copyright Copyright 2023 Passbolt SA
6
6
  * @source https://github.com/passbolt/passbolt_styleguide
7
7
  * @license AGPL-3.0
@@ -1,7 +1,7 @@
1
1
  /**!
2
2
  * @name passbolt-styleguide
3
- * @version v5.1.0
4
- * @date 2025-05-07
3
+ * @version v5.1.2
4
+ * @date 2025-05-12
5
5
  * @copyright Copyright 2023 Passbolt SA
6
6
  * @source https://github.com/passbolt/passbolt_styleguide
7
7
  * @license AGPL-3.0
@@ -1,7 +1,7 @@
1
1
  /**!
2
2
  * @name passbolt-styleguide
3
- * @version v5.1.0
4
- * @date 2025-05-07
3
+ * @version v5.1.2
4
+ * @date 2025-05-12
5
5
  * @copyright Copyright 2023 Passbolt SA
6
6
  * @source https://github.com/passbolt/passbolt_styleguide
7
7
  * @license AGPL-3.0
@@ -1,7 +1,7 @@
1
1
  /**!
2
2
  * @name passbolt-styleguide
3
- * @version v5.1.0
4
- * @date 2025-05-07
3
+ * @version v5.1.2
4
+ * @date 2025-05-12
5
5
  * @copyright Copyright 2023 Passbolt SA
6
6
  * @source https://github.com/passbolt/passbolt_styleguide
7
7
  * @license AGPL-3.0
@@ -1,7 +1,7 @@
1
1
  /**!
2
2
  * @name passbolt-styleguide
3
- * @version v5.1.0
4
- * @date 2025-05-07
3
+ * @version v5.1.2
4
+ * @date 2025-05-12
5
5
  * @copyright Copyright 2023 Passbolt SA
6
6
  * @source https://github.com/passbolt/passbolt_styleguide
7
7
  * @license AGPL-3.0
@@ -1,7 +1,7 @@
1
1
  /**!
2
2
  * @name passbolt-styleguide
3
- * @version v5.1.0
4
- * @date 2025-05-07
3
+ * @version v5.1.2
4
+ * @date 2025-05-12
5
5
  * @copyright Copyright 2023 Passbolt SA
6
6
  * @source https://github.com/passbolt/passbolt_styleguide
7
7
  * @license AGPL-3.0
@@ -1,7 +1,7 @@
1
1
  /**!
2
2
  * @name passbolt-styleguide
3
- * @version v5.1.0
4
- * @date 2025-05-07
3
+ * @version v5.1.2
4
+ * @date 2025-05-12
5
5
  * @copyright Copyright 2023 Passbolt SA
6
6
  * @source https://github.com/passbolt/passbolt_styleguide
7
7
  * @license AGPL-3.0
@@ -1,7 +1,7 @@
1
1
  /**!
2
2
  * @name passbolt-styleguide
3
- * @version v5.1.0
4
- * @date 2025-05-07
3
+ * @version v5.1.2
4
+ * @date 2025-05-12
5
5
  * @copyright Copyright 2023 Passbolt SA
6
6
  * @source https://github.com/passbolt/passbolt_styleguide
7
7
  * @license AGPL-3.0
@@ -1,7 +1,7 @@
1
1
  /**!
2
2
  * @name passbolt-styleguide
3
- * @version v5.1.0
4
- * @date 2025-05-07
3
+ * @version v5.1.2
4
+ * @date 2025-05-12
5
5
  * @copyright Copyright 2023 Passbolt SA
6
6
  * @source https://github.com/passbolt/passbolt_styleguide
7
7
  * @license AGPL-3.0
@@ -1,7 +1,7 @@
1
1
  /**!
2
2
  * @name passbolt-styleguide
3
- * @version v5.1.0
4
- * @date 2025-05-07
3
+ * @version v5.1.2
4
+ * @date 2025-05-12
5
5
  * @copyright Copyright 2023 Passbolt SA
6
6
  * @source https://github.com/passbolt/passbolt_styleguide
7
7
  * @license AGPL-3.0
@@ -1,7 +1,7 @@
1
1
  /**!
2
2
  * @name passbolt-styleguide
3
- * @version v5.1.0
4
- * @date 2025-05-07
3
+ * @version v5.1.2
4
+ * @date 2025-05-12
5
5
  * @copyright Copyright 2023 Passbolt SA
6
6
  * @source https://github.com/passbolt/passbolt_styleguide
7
7
  * @license AGPL-3.0
@@ -1,7 +1,7 @@
1
1
  /**!
2
2
  * @name passbolt-styleguide
3
- * @version v5.1.0
4
- * @date 2025-05-07
3
+ * @version v5.1.2
4
+ * @date 2025-05-12
5
5
  * @copyright Copyright 2023 Passbolt SA
6
6
  * @source https://github.com/passbolt/passbolt_styleguide
7
7
  * @license AGPL-3.0
@@ -1,7 +1,7 @@
1
1
  /**!
2
2
  * @name passbolt-styleguide
3
- * @version v5.1.0
4
- * @date 2025-05-07
3
+ * @version v5.1.2
4
+ * @date 2025-05-12
5
5
  * @copyright Copyright 2023 Passbolt SA
6
6
  * @source https://github.com/passbolt/passbolt_styleguide
7
7
  * @license AGPL-3.0
@@ -1,7 +1,7 @@
1
1
  /**!
2
2
  * @name passbolt-styleguide
3
- * @version v5.1.0
4
- * @date 2025-05-07
3
+ * @version v5.1.2
4
+ * @date 2025-05-12
5
5
  * @copyright Copyright 2023 Passbolt SA
6
6
  * @source https://github.com/passbolt/passbolt_styleguide
7
7
  * @license AGPL-3.0
@@ -1,7 +1,7 @@
1
1
  /**!
2
2
  * @name passbolt-styleguide
3
- * @version v5.1.0
4
- * @date 2025-05-07
3
+ * @version v5.1.2
4
+ * @date 2025-05-12
5
5
  * @copyright Copyright 2023 Passbolt SA
6
6
  * @source https://github.com/passbolt/passbolt_styleguide
7
7
  * @license AGPL-3.0
@@ -1,7 +1,7 @@
1
1
  /**!
2
2
  * @name passbolt-styleguide
3
- * @version v5.1.0
4
- * @date 2025-05-07
3
+ * @version v5.1.2
4
+ * @date 2025-05-12
5
5
  * @copyright Copyright 2023 Passbolt SA
6
6
  * @source https://github.com/passbolt/passbolt_styleguide
7
7
  * @license AGPL-3.0
@@ -1,7 +1,7 @@
1
1
  /**!
2
2
  * @name passbolt-styleguide
3
- * @version v5.1.0
4
- * @date 2025-05-07
3
+ * @version v5.1.2
4
+ * @date 2025-05-12
5
5
  * @copyright Copyright 2023 Passbolt SA
6
6
  * @source https://github.com/passbolt/passbolt_styleguide
7
7
  * @license AGPL-3.0
@@ -1,7 +1,7 @@
1
1
  /**!
2
2
  * @name passbolt-styleguide
3
- * @version v5.1.0
4
- * @date 2025-05-07
3
+ * @version v5.1.2
4
+ * @date 2025-05-12
5
5
  * @copyright Copyright 2023 Passbolt SA
6
6
  * @source https://github.com/passbolt/passbolt_styleguide
7
7
  * @license AGPL-3.0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "passbolt-styleguide",
3
- "version": "5.1.0",
3
+ "version": "5.1.2",
4
4
  "license": "AGPL-3.0",
5
5
  "copyright": "Copyright 2023 Passbolt SA",
6
6
  "description": "Passbolt styleguide contains common styling assets used by the different sites, plugin, etc.",
@@ -324,7 +324,7 @@
324
324
  "csv exports from browsers (safari, chrome, edge, brave, opera, vivaldi, firefox, waterfox), keepassx, logmeonce, lastpass, 1password, nordpass, dashlane and bitwarden are supported": "la exportación de CSV es compatible desde navegadores (safari, chrome, edge, brave, opera, vivaldi, firefox, waterfox), keepassx, logmeonce, lastpass, 1password, nordpass, dashlane y bitwarden",
325
325
  "Current status": "Estado actual",
326
326
  "currently:": "actualmente:",
327
- "Curve": "Curve",
327
+ "Curve": "Curva",
328
328
  "Customer id:": "ID del cliente:",
329
329
  "database": "base de datos",
330
330
  "Database": "Base de datos",
@@ -593,7 +593,7 @@
593
593
  "If you still need to recover your account, you will need to start the process from scratch.": "Si todavía necesita recuperar su cuenta, necesitará iniciar el proceso desde cero.",
594
594
  "If you want it to be a searchable, you can convert it into a description.": "Si quiere que sea contenido buscable, puede convertirlo en una descripción.",
595
595
  "If you want it to be a secret, you can convert it into a note.": "Si quiere que sea un secreto, puede convertirlo en una nota.",
596
- "If you weren’t expecting this, you can verify with your administrator.": "If you weren’t expecting this, you can verify with your administrator.",
596
+ "If you weren’t expecting this, you can verify with your administrator.": "Si no esperaba esto, puede verificarlo con su administrador.",
597
597
  "Ignored:": "Ignorado",
598
598
  "Import": "Importar",
599
599
  "Import account": "Importar cuenta",
@@ -648,7 +648,7 @@
648
648
  "Keepass key file (optional)": "Keepass key file (opcional)",
649
649
  "Keepass password": "Contraseña de keepass",
650
650
  "Key": "Clave",
651
- "Key fingerprint": "Key fingerprint",
651
+ "Key fingerprint": "Clave de huella digital",
652
652
  "Key Id": "Id de clave",
653
653
  "Key length": "Longitud de la clave",
654
654
  "Key Size": "Tamaño de Clave",
@@ -706,7 +706,7 @@
706
706
  "Modify the default settings of the passwords generator.": "Modificar la configuración predeterminada del generador de contraseñas.",
707
707
  "Monitor the passbolt API's health and responsiveness.": "Monitorizar la salud y la capacidad de respuesta de la API de Passbolt.",
708
708
  "More": "Más",
709
- "More information": "More information",
709
+ "More information": "Más información",
710
710
  "More informations": "Más información",
711
711
  "Move": "Mover",
712
712
  "Multi factor authentication": "Autenticación de múltiples factores",
@@ -1191,8 +1191,8 @@
1191
1191
  "The email notification settings were updated.": "Se actualizaron los ajustes de notificación de correo electrónico.",
1192
1192
  "The encrypted metadata settings were updated.": "Se actualizaron los ajustes de metadatos cifrados.",
1193
1193
  "The encrypted metadata were migrated.": "Se han migrado los metadatos cifrados.",
1194
- "The encryption key used to share metadata between users has been updated by <1>{{creatorName}}</1>.": "The encryption key used to share metadata between users has been updated by <1>{{creatorName}}</1>.",
1195
- "The encryption key used to share metadata between users has been updated by <1>{creatorName}</1>.": "The encryption key used to share metadata between users has been updated by <1>{creatorName}</1>.",
1194
+ "The encryption key used to share metadata between users has been updated by <1>{{creatorName}}</1>.": "La clave de cifrado utilizada para compartir metadatos entre usuarios ha sido actualizada por <1>{{creatorName}}</1>.",
1195
+ "The encryption key used to share metadata between users has been updated by <1>{creatorName}</1>.": "La clave de cifrado utilizada para compartir metadatos entre usuarios ha sido actualizada por <1>{creatorName}</1>.",
1196
1196
  "The endpoints for updating the users directory configurations are disabled.": "Los endpoints para actualizar las configuraciones del directorio de usuarios están desactivados.",
1197
1197
  "The endpoints for updating the users directory configurations are enabled.": "Los endpoints para actualizar las configuraciones del directorio de usuarios están activados.",
1198
1198
  "The environment variable GNUPGHOME is set to {gpgHomeDirectory}": "La variable de entorno GNUPGHOME está configurada a {gpgHomeDirectory}",
@@ -1220,8 +1220,8 @@
1220
1220
  "The key is required.": "Se requiere la clave.",
1221
1221
  "The logs directory and its content are not writable": "El directorio de logs y su contenido no tienen permisos de escritura",
1222
1222
  "The logs directory and its content are writable": "El directorio de logs y su contenido tienen permisos de escritura",
1223
- "The metadata key has changed": "The metadata key has changed",
1224
- "The metadata key has changed.": "The metadata key has changed.",
1223
+ "The metadata key has changed": "La clave de metadatos ha cambiado",
1224
+ "The metadata key has changed.": "La clave de metadatos ha cambiado.",
1225
1225
  "The metadata key settings were updated.": "Se actualizaron los ajustes de las claves de metadatos.",
1226
1226
  "The MFA policy settings were updated.": "Se actualizaron los ajustes de la política de MFA.",
1227
1227
  "The multi factor authentication settings for the organization were updated.": "Se actualizaron las opciones de autenticación de múltiples factores en la organización.",
@@ -1394,7 +1394,7 @@
1394
1394
  "This is the maximum size for this field, make sure your data was not truncated.": "Este es el tamaño máximo para este campo, asegúrese de que sus datos no han sido truncados.",
1395
1395
  "This is the name users will see in their mailbox when passbolt sends a notification.": "Este es el nombre que los usuarios verán en su buzón de correo cuando Passbolt envíe una notificación.",
1396
1396
  "This is the passphrase that is asked during sign in or recover.": "Esta es la contraseña que se pregunta durante el inicio de sesión o la recuperación.",
1397
- "This is unusual, please verify with your administrator.": "This is unusual, please verify with your administrator.",
1397
+ "This is unusual, please verify with your administrator.": "Esto es inusual. Por favor, verifique con su administrador.",
1398
1398
  "This OTP is not valid.": "Este OTP no es válido.",
1399
1399
  "This page is available to help administrators diagnose if something is wrong with a passbolt installation and help keeping it secure.": "Esta página está disponible para ayudar a los administradores a diagnosticar si hay algo mal con una instalación de Passbolt y ayudar a mantenerla segura.",
1400
1400
  "This passphrase is the only passphrase you will need to remember from now on, choose wisely!": "Esta contraseña es la única contraseña que necesitará recordar a partir de ahora, ¡elija sabiamente!",
@@ -1636,8 +1636,8 @@
1636
1636
  "You will be able to save it after submitting": "Podrá guardarlo después del envío",
1637
1637
  "You will need this recovery kit later to access your account (for example on a new device).": "Necesitará este kit de recuperación más adelante para acceder a su cuenta (por ejemplo en un dispositivo nuevo).",
1638
1638
  "you@organization.com": "usted@organizacion.com",
1639
- "Your administrator may have rolled back the metadata key and you need to trust it prior to its usage.": "Your administrator may have rolled back the metadata key and you need to trust it prior to its usage.",
1640
- "Your administrator may have rotated the metadata key and you need to trust it prior to its usage.": "Your administrator may have rotated the metadata key and you need to trust it prior to its usage.",
1639
+ "Your administrator may have rolled back the metadata key and you need to trust it prior to its usage.": "Su administrador puede haber revertido la clave de metadatos y necesita confiar en ella antes de usarla.",
1640
+ "Your administrator may have rotated the metadata key and you need to trust it prior to its usage.": "Su administrador puede haber rotado la clave de metadatos y debe confiar en ella antes de usarla.",
1641
1641
  "Your browser is not configured to work with this passbolt instance.": "Su navegador no está configurado para funcionar con esta instancia de Passbolt.",
1642
1642
  "Your language is missing or you discovered an error in the translation, help us to improve passbolt.": "Si falta su idioma o ha descubierto un error en la traducción, ayúdenos a mejorar Passbolt.",
1643
1643
  "Your OpenPGP private key block": "Su bloque de clave privada OpenPGP",
@@ -324,7 +324,7 @@
324
324
  "csv exports from browsers (safari, chrome, edge, brave, opera, vivaldi, firefox, waterfox), keepassx, logmeonce, lastpass, 1password, nordpass, dashlane and bitwarden are supported": "Les exports csv depuis les navigateurs (safari, chrome, edge, brave, opera, vivaldi, firefox, waterfox), keepassx, logmeonce, lastpass, 1password, nordpass, dashlane et bitwarden sont pris en charge",
325
325
  "Current status": "Statut actuel",
326
326
  "currently:": "actuellement:",
327
- "Curve": "Curve",
327
+ "Curve": "Courbe",
328
328
  "Customer id:": "Identifiant du client:",
329
329
  "database": "base de données",
330
330
  "Database": "Base de données",
@@ -593,7 +593,7 @@
593
593
  "If you still need to recover your account, you will need to start the process from scratch.": "Si vous avez encore besoin de récupérer votre compte, vous devrez démarrer le processus à partir de zéro.",
594
594
  "If you want it to be a searchable, you can convert it into a description.": "Si vous souhaitez qu'il soit recherchable, vous pouvez le convertir en description.",
595
595
  "If you want it to be a secret, you can convert it into a note.": "Si vous souhaitez qu'il soit secret, vous pouvez le convertir en note.",
596
- "If you weren’t expecting this, you can verify with your administrator.": "If you weren’t expecting this, you can verify with your administrator.",
596
+ "If you weren’t expecting this, you can verify with your administrator.": "Si vous ne vous y attendiez pas, vous pouvez vérifier avec votre administrateur.",
597
597
  "Ignored:": "Ignoré",
598
598
  "Import": "Importer",
599
599
  "Import account": "Importer le compte",
@@ -648,7 +648,7 @@
648
648
  "Keepass key file (optional)": "Fichier clé Keepass (optionnel)",
649
649
  "Keepass password": "Mot de passe Keepass",
650
650
  "Key": "Clé",
651
- "Key fingerprint": "Key fingerprint",
651
+ "Key fingerprint": "Empreinte de clé",
652
652
  "Key Id": "Id clé",
653
653
  "Key length": "Longueur de la clé",
654
654
  "Key Size": "Taille de la clé",
@@ -706,7 +706,7 @@
706
706
  "Modify the default settings of the passwords generator.": "Modify the default settings of the passwords generator.",
707
707
  "Monitor the passbolt API's health and responsiveness.": "Monitor the passbolt API's health and responsiveness.",
708
708
  "More": "Plus",
709
- "More information": "More information",
709
+ "More information": "Plus d'informations",
710
710
  "More informations": "Plus d'informations",
711
711
  "Move": "Déplacer",
712
712
  "Multi factor authentication": "Authentification multi-facteurs",
@@ -956,7 +956,7 @@
956
956
  "Retrieving account recovery": "Récupération du compte en cours",
957
957
  "Retrieving activities": "Récupération des activités",
958
958
  "Retrieving comments": "Récupération des commentaires",
959
- "Retrieving folders": "Retrieving folders",
959
+ "Retrieving folders": "Récupération des dossiers",
960
960
  "Retrieving groups": "Récupération des groupes",
961
961
  "Retrieving permissions": "Récupération des permissions",
962
962
  "Retrieving public key": "Récupération de la clé publique",
@@ -1191,8 +1191,8 @@
1191
1191
  "The email notification settings were updated.": "Les paramètres de notification par e-mail ont été mis à jour.",
1192
1192
  "The encrypted metadata settings were updated.": "Les paramètres de métadonnées chiffrées ont été mis à jour.",
1193
1193
  "The encrypted metadata were migrated.": "Les métadonnées chiffrées ont été migrées.",
1194
- "The encryption key used to share metadata between users has been updated by <1>{{creatorName}}</1>.": "The encryption key used to share metadata between users has been updated by <1>{{creatorName}}</1>.",
1195
- "The encryption key used to share metadata between users has been updated by <1>{creatorName}</1>.": "The encryption key used to share metadata between users has been updated by <1>{creatorName}</1>.",
1194
+ "The encryption key used to share metadata between users has been updated by <1>{{creatorName}}</1>.": "La clé de chiffrement utilisée pour partager les métadonnées entre les utilisateurs a été mise à jour par <1>{{creatorName}}</1>.",
1195
+ "The encryption key used to share metadata between users has been updated by <1>{creatorName}</1>.": "La clé de chiffrement utilisée pour partager les métadonnées entre les utilisateurs a été mise à jour par <1>{creatorName}</1>.",
1196
1196
  "The endpoints for updating the users directory configurations are disabled.": "Les points de terminaison pour la mise à jour des configurations de l'annuaire des utilisateurs sont désactivés.",
1197
1197
  "The endpoints for updating the users directory configurations are enabled.": "Les points de terminaison pour la mise à jour des configurations de l'annuaire des utilisateurs sont activés.",
1198
1198
  "The environment variable GNUPGHOME is set to {gpgHomeDirectory}": "La variable d'environnement GNUPGHOME est définie à {gpgHomeDirectory}",
@@ -1220,8 +1220,8 @@
1220
1220
  "The key is required.": "La clé est requise.",
1221
1221
  "The logs directory and its content are not writable": "Le répertoire des logs et son contenu ne sont pas accessibles en écriture",
1222
1222
  "The logs directory and its content are writable": "Le répertoire des logs et son contenu sont accessibles en écriture",
1223
- "The metadata key has changed": "The metadata key has changed",
1224
- "The metadata key has changed.": "The metadata key has changed.",
1223
+ "The metadata key has changed": "La clé de métadonnées a été modifiée",
1224
+ "The metadata key has changed.": "La clé de métadonnées a été modifiée.",
1225
1225
  "The metadata key settings were updated.": "Les paramètres de la clé de métadonnées ont été mis à jour.",
1226
1226
  "The MFA policy settings were updated.": "Les paramètres de la politique MFA ont été mis à jour.",
1227
1227
  "The multi factor authentication settings for the organization were updated.": "Les paramètres d'authentification multi-facteurs pour l'organisation ont été mis à jour.",
@@ -1368,7 +1368,7 @@
1368
1368
  "There is an error with the current configuration, you might want to resolve it.": "Il y a une erreur dans la configuration actuelle, vous pourriez vouloir la résoudre.",
1369
1369
  "There is no description.": "Il n'y a pas de description",
1370
1370
  "There is no note.": "Il n'y a pas de note.",
1371
- "There is no password": "There is no password",
1371
+ "There is no password": "Il n'y a pas de mot de passe",
1372
1372
  "There is no tag.": "Il n'y a pas d'étiquette.",
1373
1373
  "There is no users.": "Il n'y a pas d'utilisateurs.",
1374
1374
  "There was an issue during the transfer. Please try again later or contact your administrator.": "Il y a eu un problème pendant le transfert. Veuillez réessayer plus tard ou contacter votre administrateur.",
@@ -1394,7 +1394,7 @@
1394
1394
  "This is the maximum size for this field, make sure your data was not truncated.": "Il s'agit de la taille maximale pour ce champ, assurez-vous que vos données n'aient pas été tronquées.",
1395
1395
  "This is the name users will see in their mailbox when passbolt sends a notification.": "Ceci est le nom que les utilisateurs verront dans leur boîte aux lettres quand passbolt envoie une notification.",
1396
1396
  "This is the passphrase that is asked during sign in or recover.": "Il s'agit de la phrase de passe qui est demandée lors de la connexion ou de la récupération.",
1397
- "This is unusual, please verify with your administrator.": "This is unusual, please verify with your administrator.",
1397
+ "This is unusual, please verify with your administrator.": "C'est inhabituel, veuillez vérifier avec votre administrateur.",
1398
1398
  "This OTP is not valid.": "Cet OTP n'est pas valide.",
1399
1399
  "This page is available to help administrators diagnose if something is wrong with a passbolt installation and help keeping it secure.": "Cette page est disponible pour aider les administrateurs à diagnostiquer si quelque chose ne va pas avec une installation de passbolt et aider à le sécuriser.",
1400
1400
  "This passphrase is the only passphrase you will need to remember from now on, choose wisely!": "Cette phrase de passe est la seule phrase de passe que vous aurez besoin de vous rappeler à partir de maintenant, choisissez judicieusement!",
@@ -1636,8 +1636,8 @@
1636
1636
  "You will be able to save it after submitting": "Vous serez en mesure de l'enregistrer après soumission",
1637
1637
  "You will need this recovery kit later to access your account (for example on a new device).": "Vous aurez besoin de ce kit de récupération plus tard pour accéder à votre compte (par exemple sur un nouvel appareil).",
1638
1638
  "you@organization.com": "vous@organisation.com",
1639
- "Your administrator may have rolled back the metadata key and you need to trust it prior to its usage.": "Your administrator may have rolled back the metadata key and you need to trust it prior to its usage.",
1640
- "Your administrator may have rotated the metadata key and you need to trust it prior to its usage.": "Your administrator may have rotated the metadata key and you need to trust it prior to its usage.",
1639
+ "Your administrator may have rolled back the metadata key and you need to trust it prior to its usage.": "Votre administrateur a peut-être rétabli la clé de métadonnées et vous devez faire confiance à celle-ci avant de l'utiliser.",
1640
+ "Your administrator may have rotated the metadata key and you need to trust it prior to its usage.": "Votre administrateur a peut-être renouvelé la clé de métadonnées et vous devez faire confiance à celle-ci avant de l'utiliser.",
1641
1641
  "Your browser is not configured to work with this passbolt instance.": "Votre navigateur n'est pas configuré pour fonctionner avec cette instance de passbolt.",
1642
1642
  "Your language is missing or you discovered an error in the translation, help us to improve passbolt.": "Votre langue est manquante ou vous avez découvert une erreur dans la traduction, aidez-nous à améliorer passbolt.",
1643
1643
  "Your OpenPGP private key block": "Votre bloc de clé privée OpenPGP",
@@ -1192,7 +1192,7 @@
1192
1192
  "The encrypted metadata settings were updated.": "암호화된 메타데이터 설정이 업데이트되었습니다.",
1193
1193
  "The encrypted metadata were migrated.": "암호화된 메타데이터가 마이그레이션되었습니다.",
1194
1194
  "The encryption key used to share metadata between users has been updated by <1>{{creatorName}}</1>.": "사용자 간에 메타데이터를 공유하는 데 사용되는 암호화 키가 <1>{{creatorName}}</1>에 의해 업데이트되었습니다.",
1195
- "The encryption key used to share metadata between users has been updated by <1>{creatorName}</1>.": "The encryption key used to share metadata between users has been updated by <1>{creatorName}</1>.",
1195
+ "The encryption key used to share metadata between users has been updated by <1>{creatorName}</1>.": "사용자 간에 메타데이터를 공유하는 사용되는 암호화 키가 <1>{creatorName}</1>에 의해 업데이트되었습니다.",
1196
1196
  "The endpoints for updating the users directory configurations are disabled.": "사용자 디렉터리 구성을 업데이트하기 위한 엔드포인트가 비활성화됩니다.",
1197
1197
  "The endpoints for updating the users directory configurations are enabled.": "사용자 디렉터리 구성을 업데이트하기 위한 엔트포인트가 활성화되었습니다.",
1198
1198
  "The environment variable GNUPGHOME is set to {gpgHomeDirectory}": "환경 변수 GNUPGHOME이 {gpgHomeDirectory}로 설정됨",
@@ -84,7 +84,7 @@ class DisplayResourceDetailsDescription extends React.Component {
84
84
  * @returns {boolean}
85
85
  */
86
86
  hasNoDescription() {
87
- return this.resource.metadata.description === null
87
+ return !this.resource.metadata.description
88
88
  || this.resource.metadata.description?.length === 0;
89
89
  }
90
90
 
@@ -51,7 +51,7 @@ class ShareDialog extends Component {
51
51
  */
52
52
  async componentDidMount() {
53
53
  if (this.props.context.shareDialogProps.resourcesIds) {
54
- this.resources = await this.props.context.port.request('passbolt.resources.find-all-by-ids-for-display-permissions', this.props.context.shareDialogProps.resourcesIds);
54
+ await this.findResourcesDetails();
55
55
  }
56
56
  if (this.props.context.shareDialogProps.foldersIds) {
57
57
  this.folders = await this.props.context.port.request('passbolt.share.get-folders', this.props.context.shareDialogProps.foldersIds);
@@ -103,6 +103,20 @@ class ShareDialog extends Component {
103
103
  this.renderContainer = this.renderContainer.bind(this);
104
104
  }
105
105
 
106
+ /**
107
+ * Find the resources details.
108
+ * Close the dialog in case of error.
109
+ * @returns {Promise<void>}
110
+ */
111
+ async findResourcesDetails() {
112
+ try {
113
+ this.resources = await this.props.context.port.request('passbolt.resources.find-all-by-ids-for-display-permissions', this.props.context.shareDialogProps.resourcesIds);
114
+ } catch (error) {
115
+ this.handleError(error);
116
+ this.props.onClose();
117
+ }
118
+ }
119
+
106
120
  /**
107
121
  * Handle close button click.
108
122
  * @returns {void}
@@ -153,7 +167,8 @@ class ShareDialog extends Component {
153
167
  await this.shareSave();
154
168
  await this.handleSaveSuccess();
155
169
  } catch (error) {
156
- this.handleSaveError(error);
170
+ this.setState({processing: false});
171
+ this.handleError(error);
157
172
  }
158
173
  }
159
174
 
@@ -167,12 +182,12 @@ class ShareDialog extends Component {
167
182
  }
168
183
 
169
184
  /**
170
- * Handle save operation error.
185
+ * Handle an error.
186
+ * If the user declined to proceed, by refusing to enter their passphrase or trust the key, do nothing.
187
+ * For any other error, show the error dialog.
171
188
  * @param {object} error The returned error
172
189
  */
173
- handleSaveError(error) {
174
- this.setState({processing: false});
175
-
190
+ handleError(error) {
176
191
  // It can happen when the user has closed the passphrase entry dialog by instance.
177
192
  if (error?.name === "UserAbortsOperationError" || error?.name === "UntrustedMetadataKeyError") {
178
193
  console.warn(error);
@@ -20,13 +20,15 @@ import {
20
20
  defaultAppContext,
21
21
  defaultProps,
22
22
  mockResultsFolders,
23
- mockResultsResources, mockResultsResourcesAndFolders
23
+ mockResultsResources,
24
+ mockResultsResourcesAndFolders
24
25
  } from "./ShareDialog.test.data";
25
26
  import {ActionFeedbackContext} from "../../contexts/ActionFeedbackContext";
26
27
  import PassboltApiFetchError from "../../../shared/lib/Error/PassboltApiFetchError";
27
28
  import {waitFor} from "@testing-library/react";
28
29
  import NotifyError from "../Common/Error/NotifyError/NotifyError";
29
30
  import {waitForTrue} from "../../../../test/utils/waitFor";
31
+ import UserAbortsOperationError from "../../lib/Error/UserAbortsOperationError";
30
32
 
31
33
  beforeAll(() => {
32
34
  global.scrollTo = jest.fn();
@@ -44,7 +46,7 @@ afterEach(() => {
44
46
  describe("As Lu I should see the share dialog", () => {
45
47
  let page; // The page to test against
46
48
  const context = defaultAppContext(); // The applicative context
47
- const props = defaultProps(); // The props to pass
49
+ let props = null; // The component props
48
50
 
49
51
  const mockContextRequest = implementation => jest.spyOn(context.port, 'request').mockImplementation(implementation);
50
52
 
@@ -59,6 +61,7 @@ describe("As Lu I should see the share dialog", () => {
59
61
  const requestResourcesMockImpl = path => mockResultsResources[path];
60
62
  mockContextRequest(requestResourcesMockImpl);
61
63
  context.setContext({shareDialogProps});
64
+ props = defaultProps();
62
65
  page = new ShareDialogPage(context, props);
63
66
  });
64
67
 
@@ -184,6 +187,40 @@ describe("As Lu I should see the share dialog", () => {
184
187
  expect(props.onClose).toBeCalled();
185
188
  });
186
189
 
190
+ it('displays an error dialog if the resource details cannot be loaded due to an unexpected error', async() => {
191
+ expect.assertions(2);
192
+ const error = new Error("Unexpected error");
193
+ const requestBextMockImpl = request => {
194
+ switch (request) {
195
+ case "passbolt.resources.find-all-by-ids-for-display-permissions":
196
+ throw error;
197
+ }
198
+ };
199
+ mockContextRequest(requestBextMockImpl);
200
+ page = new ShareDialogPage(context, props);
201
+
202
+ // Throw general error message
203
+ expect(props.onClose).toBeCalled();
204
+ expect(props.dialogContext.open).toHaveBeenCalledWith(NotifyError, {error: error});
205
+ });
206
+
207
+ it('closes the share dialogs if the resource details cannot be loaded due to users not entering their passphrase when requested. This happens when the metadata need to be decrypted.', async() => {
208
+ expect.assertions(2);
209
+ const error = new UserAbortsOperationError();
210
+ const requestBextMockImpl = request => {
211
+ switch (request) {
212
+ case "passbolt.resources.find-all-by-ids-for-display-permissions":
213
+ throw error;
214
+ }
215
+ };
216
+ mockContextRequest(requestBextMockImpl);
217
+ page = new ShareDialogPage(context, props);
218
+
219
+ // Throw general error message
220
+ expect(props.onClose).toBeCalled();
221
+ expect(props.dialogContext.open).not.toHaveBeenCalled();
222
+ });
223
+
187
224
  it('As LU I should see an error dialog if the submit operation fails for an unexpected reason', async() => {
188
225
  expect.assertions(1);
189
226
  const requestBextMockImpl = (request, option) => {
@@ -30,6 +30,7 @@ import {withRbac} from "../../shared/context/Rbac/RbacContext";
30
30
  import {uiActions} from "../../shared/services/rbacs/uiActionEnumeration";
31
31
  import {ColumnModelTypes} from "../../shared/models/column/ColumnModel";
32
32
  import getPropValue from "../lib/Object/getPropValue";
33
+ import {withTranslation} from "react-i18next";
33
34
 
34
35
  /**
35
36
  * Context related to resources ( filter, current selections, etc.)
@@ -632,9 +633,39 @@ export class ResourceWorkspaceContextProvider extends React.Component {
632
633
  */
633
634
  populate() {
634
635
  if (this.canUseFolders) {
635
- this.props.context.port.request("passbolt.folders.update-local-storage");
636
+ this.populateFolders();
637
+ }
638
+ this.populateResources();
639
+ }
640
+
641
+ /**
642
+ * Populate the resources local storage
643
+ * @returns {Promise<void>}
644
+ */
645
+ async populateResources() {
646
+ try {
647
+ await this.props.context.port.request("passbolt.resources.update-local-storage");
648
+ } catch (error) {
649
+ console.error(error);
650
+ const message = this.props.t("Unable to load/refresh the resources.")
651
+ + (error?.message ? ` ${error?.message}` : "");
652
+ await this.props.actionFeedbackContext.displayError(message);
653
+ }
654
+ }
655
+
656
+ /**
657
+ * Populate the folders local storage
658
+ * @returns {Promise<void>}
659
+ */
660
+ async populateFolders() {
661
+ try {
662
+ await this.props.context.port.request("passbolt.folders.update-local-storage");
663
+ } catch (error) {
664
+ console.error(error);
665
+ const message = this.props.t("Unable to load/refresh the folders.");
666
+ Number(error?.message ? ` ${error?.message}` : "");
667
+ await this.props.actionFeedbackContext.displayError(message);
636
668
  }
637
- this.props.context.port.request("passbolt.resources.update-local-storage");
638
669
  }
639
670
 
640
671
  /** RESOURCE SEARCH **/
@@ -1259,10 +1290,11 @@ ResourceWorkspaceContextProvider.propTypes = {
1259
1290
  actionFeedbackContext: PropTypes.object,
1260
1291
  passwordExpiryContext: PropTypes.object, // the password expiry contexts
1261
1292
  rbacContext: PropTypes.any, // The role based access control context
1262
- loadingContext: PropTypes.object // The loading context
1293
+ loadingContext: PropTypes.object, // The loading context
1294
+ t: PropTypes.func, // The translation function
1263
1295
  };
1264
1296
 
1265
- export default withAppContext(withRbac(withPasswordExpiry(withLoading(withActionFeedback(withRouter(ResourceWorkspaceContextProvider))))));
1297
+ export default withAppContext(withRbac(withPasswordExpiry(withLoading(withActionFeedback(withRouter(withTranslation('common')(ResourceWorkspaceContextProvider)))))));
1266
1298
 
1267
1299
  /**
1268
1300
  * Resource Workspace Context Consumer HOC