diff --git a/backend/core/locale/fr/LC_MESSAGES/django.mo b/backend/core/locale/fr/LC_MESSAGES/django.mo index c071bbe28..d30aac665 100644 Binary files a/backend/core/locale/fr/LC_MESSAGES/django.mo and b/backend/core/locale/fr/LC_MESSAGES/django.mo differ diff --git a/backend/core/locale/fr/LC_MESSAGES/django.po b/backend/core/locale/fr/LC_MESSAGES/django.po index 061ba6e20..400705fe7 100644 --- a/backend/core/locale/fr/LC_MESSAGES/django.po +++ b/backend/core/locale/fr/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-25 14:29+0000\n" +"POT-Creation-Date: 2024-12-11 18:23+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -30,7 +30,7 @@ msgstr "Menu" msgid "Created at" msgstr "Créé le" -#: core/base_models.py:11 +#: core/base_models.py:11 core/models.py:1913 msgid "Updated at" msgstr "Mis à jour le" @@ -38,21 +38,21 @@ msgstr "Mis à jour le" msgid "published" msgstr "publié" -#: core/base_models.py:110 core/models.py:113 +#: core/base_models.py:110 core/models.py:114 #: core/templates/core/action_plan_pdf.html:42 #: core/templates/snippets/mp_data.html:58 #: core/templates/snippets/ri_list_nested.html:16 msgid "Name" msgstr "Nom" -#: core/base_models.py:111 core/models.py:115 +#: core/base_models.py:111 core/models.py:116 #: core/templates/core/action_plan_pdf.html:43 #: core/templates/snippets/mp_data.html:59 #: core/templates/snippets/ra_data.html:43 msgid "Description" msgstr "Description" -#: core/base_models.py:126 core/models.py:1310 +#: core/base_models.py:126 core/models.py:1753 #: core/templates/core/action_plan_pdf.html:46 #: core/templates/snippets/mp_data.html:62 msgid "ETA" @@ -200,130 +200,148 @@ msgstr "Rechercher une preuve..." msgid "Search framework..." msgstr "Rechercher un référentiel..." -#: core/models.py:104 core/models.py:185 +#: core/management/commands/reset_mail.py:16 +msgid "CISO Assistant: Password Reset" +msgstr "CISO Assistant : réinitialisation de mot de passe" + +#: core/models.py:105 core/models.py:214 msgid "URN" msgstr "URN" -#: core/models.py:107 +#: core/models.py:108 core/models.py:1884 core/models.py:2464 msgid "Reference ID" msgstr "ID de référence" -#: core/models.py:110 core/models.py:826 +#: core/models.py:111 core/models.py:877 msgid "Provider" msgstr "Fournisseur" -#: core/models.py:116 core/models.py:1087 +#: core/models.py:117 core/models.py:1184 msgid "Annotation" msgstr "Annotation" -#: core/models.py:118 +#: core/models.py:119 msgid "Translations" msgstr "" -#: core/models.py:172 +#: core/models.py:173 msgid "Locale" msgstr "Locale" -#: core/models.py:174 +#: core/models.py:175 msgid "Default locale" msgstr "Locale par défaut" -#: core/models.py:187 +#: core/models.py:184 +msgid "Label" +msgstr "" + +#: core/models.py:202 +msgid "Labels" +msgstr "" + +#: core/models.py:216 msgid "Copyright" msgstr "Copyright" -#: core/models.py:189 core/models.py:1444 +#: core/models.py:218 core/models.py:1954 msgid "Version" msgstr "Version" -#: core/models.py:194 +#: core/models.py:223 msgid "Packager of the library" msgstr "Responsable de l'empaquetage de la bibliothèque" -#: core/models.py:195 +#: core/models.py:224 msgid "Packager" msgstr "Empaqueteur" -#: core/models.py:609 +#: core/models.py:659 msgid "Dependencies" msgstr "Dépendances" -#: core/models.py:708 core/templates/snippets/ri_list_nested.html:19 +#: core/models.py:758 core/templates/snippets/ri_list_nested.html:19 msgid "Threat" msgstr "Menace" -#: core/models.py:709 core/models.py:960 core/models.py:1850 +#: core/models.py:759 core/models.py:1023 core/models.py:2402 msgid "Threats" msgstr "Menaces" -#: core/models.py:729 core/models.py:1415 +#: core/models.py:779 core/models.py:1863 msgid "Policy" msgstr "Politique" -#: core/models.py:730 +#: core/models.py:780 msgid "Process" msgstr "Processus" -#: core/models.py:731 +#: core/models.py:781 msgid "Technical" msgstr "Technique" -#: core/models.py:732 +#: core/models.py:782 msgid "Physical" msgstr "Physique" -#: core/models.py:736 +#: core/models.py:783 +#, fuzzy +#| msgid "Process" +msgid "Procedure" +msgstr "Processus" + +#: core/models.py:787 msgid "Govern" msgstr "" -#: core/models.py:737 +#: core/models.py:788 msgid "Identify" msgstr "" -#: core/models.py:738 +#: core/models.py:789 msgid "Protect" msgstr "" -#: core/models.py:739 +#: core/models.py:790 msgid "Detect" msgstr "" -#: core/models.py:740 +#: core/models.py:791 msgid "Respond" msgstr "" -#: core/models.py:741 +#: core/models.py:792 msgid "Recover" msgstr "" -#: core/models.py:757 core/models.py:1284 +#: core/models.py:808 core/models.py:1721 #: core/templates/core/action_plan_pdf.html:44 msgid "Category" msgstr "Catégorie" -#: core/models.py:765 core/models.py:1291 +#: core/models.py:816 core/models.py:1728 #, fuzzy #| msgid "Search function..." msgid "CSF Function" msgstr "Rechercher une fonction..." -#: core/models.py:769 core/models.py:986 +#: core/models.py:820 core/models.py:1049 msgid "Typical evidence" msgstr "Preuve type" -#: core/models.py:775 core/templates/snippets/mp_data.html:61 +#: core/models.py:826 core/templates/snippets/mp_data.html:61 msgid "Reference control" msgstr "Mesure de référence" -#: core/models.py:776 core/models.py:966 +#: core/models.py:827 core/models.py:1029 msgid "Reference controls" msgstr "Mesures de référence" -#: core/models.py:811 +#: core/models.py:862 msgid "JSON definition" msgstr "Définition JSON" -#: core/models.py:813 +#: core/models.py:864 msgid "" "JSON definition of the risk matrix. See the documentation for more " "information." @@ -331,11 +349,11 @@ msgstr "" "Définition JSON de la matrice de risque. Consultez la documentation pour " "plus d'informations." -#: core/models.py:819 +#: core/models.py:870 msgid "enabled" msgstr "activé" -#: core/models.py:822 +#: core/models.py:873 msgid "" "If the risk matrix is set as disabled, it will not be available for " "selection for new risk assessments." @@ -343,405 +361,524 @@ msgstr "" "Si la matrice de risque est désactivée, elle ne sera pas disponible pour la " "sélection lors de nouvelles évaluations de risque." -#: core/models.py:891 core/models.py:2066 +#: core/models.py:942 core/models.py:2633 msgid "Minimum score" msgstr "Score minimum" -#: core/models.py:892 core/models.py:2067 +#: core/models.py:943 core/models.py:2634 msgid "Maximum score" msgstr "Score maximum" -#: core/models.py:894 core/models.py:2069 +#: core/models.py:945 core/models.py:2636 msgid "Score definition" msgstr "Définition du score" -#: core/models.py:897 +#: core/models.py:948 msgid "Implementation groups definition" msgstr "Définition des groupes d'implémentation" -#: core/models.py:908 core/models.py:974 core/models.py:2060 +#: core/models.py:959 core/models.py:1037 core/models.py:2624 #: core/templates/core/action_plan_pdf.html:20 msgid "Framework" msgstr "Référentiel" -#: core/models.py:909 +#: core/models.py:960 msgid "Frameworks" msgstr "Référentiels" -#: core/models.py:978 +#: core/models.py:1041 msgid "Parent URN" msgstr "URN parent" -#: core/models.py:980 +#: core/models.py:1043 msgid "Order ID" msgstr "ID de commande" -#: core/models.py:982 +#: core/models.py:1045 msgid "Implementation groups" msgstr "Groupes d'implémentation" -#: core/models.py:984 +#: core/models.py:1047 msgid "Assessable" msgstr "Évaluable" -#: core/models.py:988 +#: core/models.py:1051 #, fuzzy #| msgid "Description" msgid "Question" msgstr "Description" -#: core/models.py:991 +#: core/models.py:1088 #, fuzzy #| msgid "Requirement" msgid "RequirementNode" msgstr "Exigence" -#: core/models.py:992 +#: core/models.py:1089 #, fuzzy #| msgid "Requirement" msgid "RequirementNodes" msgstr "Exigence" -#: core/models.py:1007 +#: core/models.py:1104 #, fuzzy #| msgid "Search framework..." msgid "Source framework" msgstr "Rechercher un référentiel..." -#: core/models.py:1013 +#: core/models.py:1110 #, fuzzy #| msgid "Search framework..." msgid "Target framework" msgstr "Rechercher un référentiel..." -#: core/models.py:1019 +#: core/models.py:1116 msgid "Source and related frameworks must be different" msgstr "" -#: core/models.py:1025 +#: core/models.py:1122 msgid "Full" msgstr "" -#: core/models.py:1026 +#: core/models.py:1123 msgid "Partial" msgstr "" -#: core/models.py:1027 core/models.py:1034 +#: core/models.py:1124 core/models.py:1131 #, fuzzy #| msgid "Created" msgid "Not related" msgstr "Créé" -#: core/models.py:1030 +#: core/models.py:1127 msgid "Subset" msgstr "" -#: core/models.py:1031 +#: core/models.py:1128 msgid "Intersect" msgstr "" -#: core/models.py:1032 +#: core/models.py:1129 msgid "Equal" msgstr "" -#: core/models.py:1033 +#: core/models.py:1130 msgid "Superset" msgstr "" -#: core/models.py:1037 +#: core/models.py:1134 msgid "Syntactic" msgstr "" -#: core/models.py:1038 +#: core/models.py:1135 msgid "Semantic" msgstr "" -#: core/models.py:1039 +#: core/models.py:1136 #, fuzzy #| msgid "Production" msgid "Functional" msgstr "Production" -#: core/models.py:1054 +#: core/models.py:1151 msgid "Mapping set" msgstr "" -#: core/models.py:1060 +#: core/models.py:1157 msgid "Target requirement" msgstr "Exigence cible" -#: core/models.py:1067 +#: core/models.py:1164 msgid "Relationship" msgstr "" -#: core/models.py:1074 +#: core/models.py:1171 msgid "Rationale" msgstr "Raison" -#: core/models.py:1079 +#: core/models.py:1176 msgid "Source requirement" msgstr "Exigence source" -#: core/models.py:1084 +#: core/models.py:1181 msgid "Strength of relationship" msgstr "" -#: core/models.py:1103 core/models.py:1252 +#: core/models.py:1273 +#, fuzzy +#| msgid "Observation" +msgid "Abbreviation" +msgstr "Observation" + +#: core/models.py:1276 +#, fuzzy +#| msgid "Order by" +msgid "Ordering" +msgstr "Trier par" + +#: core/models.py:1279 +msgid "Security objective ordering" +msgstr "" + +#: core/models.py:1283 +#, fuzzy +#| msgid "Justification" +msgid "Qualification" +msgstr "Justification" + +#: core/models.py:1284 core/models.py:2466 +#, fuzzy +#| msgid "Justification" +msgid "Qualifications" +msgstr "Justification" + +#: core/models.py:1302 core/models.py:1672 core/models.py:1877 msgid "Undefined" msgstr "Non défini" -#: core/models.py:1104 +#: core/models.py:1303 msgid "Design" msgstr "Conception" -#: core/models.py:1105 +#: core/models.py:1304 msgid "Development" msgstr "Développement" -#: core/models.py:1106 +#: core/models.py:1305 msgid "Production" msgstr "Production" -#: core/models.py:1107 +#: core/models.py:1306 msgid "EndOfLife" msgstr "Fin de vie" -#: core/models.py:1108 +#: core/models.py:1307 msgid "Dropped" msgstr "Abandonné" -#: core/models.py:1111 -msgid "Internal reference" -msgstr "Référence interne" +#: core/models.py:1311 core/models.py:1708 core/models.py:1998 +#: core/models.py:2630 +#, fuzzy +#| msgid "Reference ID" +msgid "reference id" +msgstr "ID de référence" -#: core/models.py:1117 core/models.py:1298 core/models.py:1451 -#: core/models.py:2498 core/templates/snippets/mp_data.html:66 +#: core/models.py:1317 core/models.py:1735 core/models.py:1890 +#: core/models.py:1961 core/models.py:3143 +#: core/templates/snippets/mp_data.html:66 #: core/templates/snippets/ri_list_nested.html:31 msgid "Status" msgstr "Statut" -#: core/models.py:1122 core/models.py:1437 core/models.py:1930 +#: core/models.py:1322 core/models.py:1947 core/models.py:2498 #: core/templates/core/action_plan_pdf.html:16 #: core/templates/snippets/mp_data.html:7 msgid "Project" msgstr "Projet" -#: core/models.py:1123 +#: core/models.py:1323 msgid "Projects" msgstr "Projets" -#: core/models.py:1156 +#: core/models.py:1358 msgid "Primary" msgstr "Primaire" -#: core/models.py:1157 +#: core/models.py:1359 msgid "Support" msgstr "Support" -#: core/models.py:1160 +#: core/models.py:1431 msgid "business value" msgstr "valeur métier" -#: core/models.py:1163 +#: core/models.py:1434 msgid "type" msgstr "type" -#: core/models.py:1166 +#: core/models.py:1437 msgid "parent assets" msgstr "actifs parents" -#: core/models.py:1172 core/models.py:1837 +#: core/models.py:1443 core/models.py:1765 +msgid "External url for action follow-up (eg. Jira ticket)" +msgstr "URL externe pour le suivi de l'action (par ex. billet Jira)" + +#: core/models.py:1444 core/models.py:1632 core/models.py:1766 +#: core/templates/snippets/mp_data.html:65 +msgid "Link" +msgstr "Lien" + +#: core/models.py:1449 +msgid "Security objectives" +msgstr "" + +#: core/models.py:1450 +msgid "The security objectives of the asset" +msgstr "" + +#: core/models.py:1456 +msgid "Disaster recovery objectives" +msgstr "" + +#: core/models.py:1457 +msgid "The disaster recovery objectives of the asset" +msgstr "" + +#: core/models.py:1465 core/models.py:1740 core/models.py:2424 +msgid "Owner" +msgstr "Propriétaire" + +#: core/models.py:1471 core/models.py:2382 msgid "Assets" msgstr "Actifs" -#: core/models.py:1173 +#: core/models.py:1472 msgid "Asset" msgstr "Actif" -#: core/models.py:1203 +#: core/models.py:1623 msgid "Attachment for evidence (eg. screenshot, log file, etc.)" msgstr "" "Pièce jointe pour la preuve (par ex. capture d'écran, fichier journal, etc.)" -#: core/models.py:1204 +#: core/models.py:1624 msgid "Attachment" msgstr "Pièce jointe" -#: core/models.py:1211 +#: core/models.py:1631 msgid "Link to the evidence (eg. Jira ticket, etc.)" msgstr "Lien vers la preuve (par ex. billet Jira, etc.)" -#: core/models.py:1212 core/models.py:1323 -#: core/templates/snippets/mp_data.html:65 -msgid "Link" -msgstr "Lien" - -#: core/models.py:1218 +#: core/models.py:1638 msgid "Evidence" msgstr "Preuve" -#: core/models.py:1219 core/models.py:1276 core/models.py:2518 +#: core/models.py:1639 core/models.py:1713 core/models.py:3163 msgid "Evidences" msgstr "Preuves" -#: core/models.py:1247 core/models.py:2482 +#: core/models.py:1667 core/models.py:3127 msgid "To do" msgstr "À faire" -#: core/models.py:1248 core/models.py:1431 core/models.py:2483 +#: core/models.py:1668 core/models.py:1941 core/models.py:3128 msgid "In progress" msgstr "En cours" -#: core/models.py:1249 +#: core/models.py:1669 msgid "On hold" msgstr "" -#: core/models.py:1250 +#: core/models.py:1670 msgid "Active" msgstr "Actif" -#: core/models.py:1251 core/models.py:1434 +#: core/models.py:1671 core/models.py:1944 msgid "Deprecated" msgstr "Déprécié" -#: core/models.py:1258 +#: core/models.py:1675 +msgid "P1" +msgstr "" + +#: core/models.py:1676 +msgid "P2" +msgstr "" + +#: core/models.py:1677 +msgid "P3" +msgstr "" + +#: core/models.py:1678 +msgid "P4" +msgstr "" + +#: core/models.py:1685 +msgid "Priority" +msgstr "" + +#: core/models.py:1692 msgid "Small" msgstr "Petit" -#: core/models.py:1259 core/models.py:1814 core/tests/test_helpers.py:77 +#: core/models.py:1693 core/models.py:2359 core/tests/test_helpers.py:77 #: core/tests/test_helpers.py:142 msgid "Medium" msgstr "Moyen" -#: core/models.py:1260 +#: core/models.py:1694 msgid "Large" msgstr "Grand" -#: core/models.py:1261 +#: core/models.py:1695 msgid "Extra Large" msgstr "Extra large" -#: core/models.py:1271 +#: core/models.py:1705 msgid "Reference Control" msgstr "Mesure de référence" -#: core/models.py:1303 core/models.py:1866 -msgid "Owner" -msgstr "Propriétaire" +#: core/models.py:1746 +msgid "Start date (useful for timeline)" +msgstr "" -#: core/models.py:1309 +#: core/models.py:1747 +msgid "Start date" +msgstr "" + +#: core/models.py:1752 msgid "Estimated Time of Arrival" msgstr "Heure d'arrivée estimée" -#: core/models.py:1315 +#: core/models.py:1758 msgid "Date after which the applied control is no longer valid" msgstr "Date à partir de laquelle la mesure appliquée n'est plus valide" -#: core/models.py:1316 core/models.py:2626 +#: core/models.py:1759 core/models.py:3325 #: core/templates/core/action_plan_pdf.html:47 msgid "Expiry date" msgstr "Date d'expiration" -#: core/models.py:1322 -msgid "External url for action follow-up (eg. Jira ticket)" -msgstr "URL externe pour le suivi de l'action (par ex. billet Jira)" - -#: core/models.py:1330 +#: core/models.py:1773 msgid "Relative effort of the measure (using T-Shirt sizing)" msgstr "Effort relatif de la mesure (en utilisant la taille des T-shirts)" -#: core/models.py:1331 core/templates/core/action_plan_pdf.html:48 +#: core/models.py:1774 core/templates/core/action_plan_pdf.html:48 #: core/templates/snippets/mp_data.html:63 msgid "Effort" msgstr "Effort" -#: core/models.py:1335 +#: core/models.py:1778 msgid "Cost of the measure (using globally-chosen currency)" msgstr "" -#: core/models.py:1336 core/templates/core/action_plan_pdf.html:49 +#: core/models.py:1779 core/templates/core/action_plan_pdf.html:49 #: core/templates/snippets/mp_data.html:64 msgid "Cost" msgstr "" -#: core/models.py:1342 +#: core/models.py:1785 msgid "Applied control" msgstr "Mesure appliqué" -#: core/models.py:1343 core/models.py:1844 core/models.py:2534 +#: core/models.py:1786 core/models.py:1900 core/models.py:2396 +#: core/models.py:3179 msgid "Applied controls" msgstr "Mesures appliquées" -#: core/models.py:1416 +#: core/models.py:1864 msgid "Policies" msgstr "Politiques" -#: core/models.py:1430 +#: core/models.py:1878 +msgid "Potential" +msgstr "" + +#: core/models.py:1879 +msgid "Exploitable" +msgstr "" + +#: core/models.py:1880 +#, fuzzy +#| msgid "Mitigate" +msgid "Mitigated" +msgstr "Atténuer" + +#: core/models.py:1881 +msgid "Fixed" +msgstr "" + +#: core/models.py:1894 +msgid "Severity" +msgstr "" + +#: core/models.py:1895 +msgid "The severity of the vulnerability" +msgstr "" + +#: core/models.py:1909 +msgid "Date" +msgstr "" + +#: core/models.py:1910 +msgid "Historical Data" +msgstr "" + +#: core/models.py:1911 +msgid "Model" +msgstr "" + +#: core/models.py:1912 +msgid "Object ID" +msgstr "" + +#: core/models.py:1940 msgid "Planned" msgstr "Planifié" -#: core/models.py:1432 core/models.py:2484 +#: core/models.py:1942 core/models.py:3129 msgid "In review" msgstr "En examen" -#: core/models.py:1433 core/models.py:2485 +#: core/models.py:1943 core/models.py:3130 msgid "Done" msgstr "Terminé" -#: core/models.py:1443 +#: core/models.py:1953 msgid "Version of the compliance assessment (eg. 1.0, 2.0, etc.)" msgstr "Version de l'évaluation de conformité (par ex. 1.0, 2.0, etc.)" -#: core/models.py:1458 +#: core/models.py:1968 msgid "Authors" msgstr "Auteurs" -#: core/models.py:1464 core/templates/core/audit_report.html:35 +#: core/models.py:1974 core/templates/core/audit_report.html:35 msgid "Reviewers" msgstr "Relecteurs" -#: core/models.py:1467 core/models.py:2521 +#: core/models.py:1977 core/models.py:3166 msgid "Observation" msgstr "Observation" -#: core/models.py:1484 +#: core/models.py:1994 msgid "WARNING! After choosing it, you will not be able to change it" msgstr "" "ATTENTION ! Une fois que vous l'aurez choisi, vous ne pourrez plus le " "modifier." -#: core/models.py:1485 +#: core/models.py:1995 msgid "Risk matrix" msgstr "Matrice de risque" -#: core/models.py:1489 core/templates/snippets/mp_data.html:9 +#: core/models.py:2002 core/templates/snippets/mp_data.html:9 #: core/templates/snippets/ra_data.html:8 msgid "Risk assessment" msgstr "Évaluation de risque" -#: core/models.py:1490 +#: core/models.py:2003 msgid "Risk assessments" msgstr "Évaluations de risque" -#: core/models.py:1514 +#: core/models.py:2056 msgid "{}: Risk assessment is still in progress" msgstr "{} : L'évaluation des risques est toujours en cours" -#: core/models.py:1525 +#: core/models.py:2067 msgid "{}: No author assigned to this risk assessment" msgstr "{} : Aucun auteur n'a été affecté à cette évaluation des risques" -#: core/models.py:1537 +#: core/models.py:2079 msgid "{}: RiskAssessment is empty. No risk scenario declared yet" msgstr "" "{} : L'évaluation des risques est vide. Aucun scénario de risque n'a encore " "été déclaré." -#: core/models.py:1558 +#: core/models.py:2100 msgid "{} current risk level has not been assessed" msgstr "{} : Le niveau de risque actuel n'a pas été évalué" -#: core/models.py:1571 +#: core/models.py:2113 msgid "" "{} residual risk level has not been assessed. If no additional measures are " "applied, it should be at the same level as the current risk" @@ -750,43 +887,43 @@ msgstr "" "mesures supplémentaires appliquées, il devrait être au même niveau que le " "risque actuel." -#: core/models.py:1582 +#: core/models.py:2124 msgid "{} residual risk level is higher than the current one" msgstr "{} : Le niveau de risque résiduel est supérieur à l'actuel" -#: core/models.py:1594 +#: core/models.py:2136 msgid "{} residual risk probability is higher than the current one" msgstr "{} : La probabilité de risque résiduel est supérieure à l'actuelle" -#: core/models.py:1606 +#: core/models.py:2148 msgid "{} residual risk impact is higher than the current one" msgstr "{} : L'impact du risque résiduel est supérieur à l'actuel" -#: core/models.py:1627 +#: core/models.py:2169 msgid "{}: residual risk level has been lowered without any specific measure" msgstr "" "{} : Le niveau de risque résiduel a été réduit sans aucune mesure spécifique" -#: core/models.py:1641 +#: core/models.py:2183 msgid "{} risk accepted but no risk acceptance attached" msgstr "{} : Risque accepté mais aucune acceptation de risque jointe" -#: core/models.py:1664 +#: core/models.py:2206 msgid "{} does not have an ETA" msgstr "{} : Pas d'ETA" -#: core/models.py:1676 +#: core/models.py:2218 msgid "{} ETA is in the past now. Consider updating its status or the date" msgstr "" "{} : L'ETA est dans le passé maintenant. Envisagez de mettre à jour son " "statut ou la date." -#: core/models.py:1689 +#: core/models.py:2231 msgid "" "{} does not have an estimated effort. This will help you for prioritization" msgstr "{} : Pas d'effort estimé. Cela vous aidera pour la prioritisation" -#: core/models.py:1702 +#: core/models.py:2244 #, fuzzy #| msgid "" #| "{} does not have an estimated effort. This will help you for " @@ -795,7 +932,7 @@ msgid "" "{} does not have an estimated cost. This will help you for prioritization" msgstr "{} : Pas d'effort estimé. Cela vous aidera pour la prioritisation" -#: core/models.py:1715 +#: core/models.py:2257 msgid "" "{}: Applied control does not have an external link attached. This will help " "you for follow-up" @@ -803,112 +940,134 @@ msgstr "" "{} : La mesure appliquée ne comporte pas de lien externe joint. Cela vous " "aidera pour le suivi" -#: core/models.py:1738 +#: core/models.py:2280 msgid "{}: Acceptance has no expiry date" msgstr "{} : L'acceptation n'a pas de date d'expiration" -#: core/models.py:1752 +#: core/models.py:2294 msgid "{}: Acceptance has expired. Consider updating the status or the date" msgstr "" "{} : L'acceptation a expiré. Envisagez de mettre à jour le statut ou la date." -#: core/models.py:1781 +#: core/models.py:2323 msgid "Open" msgstr "Ouvert" -#: core/models.py:1782 +#: core/models.py:2324 msgid "Mitigate" msgstr "Atténuer" -#: core/models.py:1783 +#: core/models.py:2325 msgid "Accept" msgstr "Accepter" -#: core/models.py:1784 +#: core/models.py:2326 msgid "Avoid" msgstr "Éviter" -#: core/models.py:1785 +#: core/models.py:2327 msgid "Transfer" msgstr "Transférer" -#: core/models.py:1789 -msgid "Financial" +#: core/models.py:2331 +msgid "Confidentiality" msgstr "" -#: core/models.py:1790 -msgid "Legal" +#: core/models.py:2332 +msgid "Integrity" msgstr "" -#: core/models.py:1791 +#: core/models.py:2333 +#, fuzzy +#| msgid "Probability" +msgid "Availability" +msgstr "Probabilité" + +#: core/models.py:2334 +msgid "Proof" +msgstr "" + +#: core/models.py:2335 +msgid "Authenticity" +msgstr "" + +#: core/models.py:2336 +msgid "Privacy" +msgstr "" + +#: core/models.py:2337 +msgid "Safety" +msgstr "" + +#: core/models.py:2338 #, fuzzy #| msgid "Rationale" msgid "Reputation" msgstr "Raison" -#: core/models.py:1792 +#: core/models.py:2339 #, fuzzy #| msgid "Observation" msgid "Operational" msgstr "Observation" -#: core/models.py:1793 -msgid "Confidentiality" -msgstr "" - -#: core/models.py:1794 -msgid "Integrity" +#: core/models.py:2340 +msgid "Legal" msgstr "" -#: core/models.py:1795 -#, fuzzy -#| msgid "Probability" -msgid "Availability" -msgstr "Probabilité" - -#: core/models.py:1796 -msgid "Authenticity" +#: core/models.py:2341 +msgid "Financial" msgstr "" -#: core/models.py:1801 +#: core/models.py:2346 msgid "--" msgstr "--" -#: core/models.py:1803 +#: core/models.py:2348 msgid "The strength of the knowledge supporting the assessment is undefined" msgstr "La force de la connaissance soutenant l'évaluation est indéfinie" -#: core/models.py:1807 core/tests/test_helpers.py:76 +#: core/models.py:2352 core/tests/test_helpers.py:76 #: core/tests/test_helpers.py:141 msgid "Low" msgstr "Faible" -#: core/models.py:1809 +#: core/models.py:2354 msgid "The strength of the knowledge supporting the assessment is low" msgstr "La force de la connaissance soutenant l'évaluation est faible" -#: core/models.py:1816 +#: core/models.py:2361 msgid "The strength of the knowledge supporting the assessment is medium" msgstr "La force de la connaissance soutenant l'évaluation est moyenne" -#: core/models.py:1821 core/tests/test_helpers.py:78 +#: core/models.py:2366 core/tests/test_helpers.py:78 #: core/tests/test_helpers.py:143 msgid "High" msgstr "Élevé" -#: core/models.py:1823 +#: core/models.py:2368 msgid "The strength of the knowledge supporting the assessment is high" msgstr "La force de la connaissance soutenant l'évaluation est élevée" -#: core/models.py:1832 +#: core/models.py:2377 msgid "RiskAssessment" msgstr "ÉvaluationDesRisques" -#: core/models.py:1839 +#: core/models.py:2384 msgid "Assets impacted by the risk scenario" msgstr "Actifs impactés par le scénario de risque" -#: core/models.py:1857 +#: core/models.py:2389 +msgid "Vulnerabilities" +msgstr "" + +#: core/models.py:2391 +#, fuzzy +#| msgid "Assets impacted by the risk scenario" +msgid "Vulnerabities exploited by the risk scenario" +msgstr "Actifs impactés par le scénario de risque" + +#: core/models.py:2409 msgid "" "The existing controls to manage this risk. Edit the risk scenario to add " "extra applied controls." @@ -916,24 +1075,30 @@ msgstr "" "Les mesures existantes pour gérer ce risque. Modifiez le scénario de risque " "pour ajouter des mesures appliquées supplémentaires." -#: core/models.py:1859 core/templates/snippets/mp_data.html:48 +#: core/models.py:2411 core/templates/snippets/mp_data.html:48 #: core/templates/snippets/ri_list_nested.html:22 msgid "Existing controls" msgstr "Mesures existantes" -#: core/models.py:1871 +#: core/models.py:2416 +#, fuzzy +#| msgid "Existing controls" +msgid "Existing Applied controls" +msgstr "Mesures existantes" + +#: core/models.py:2429 msgid "Current probability" msgstr "Probabilité actuelle" -#: core/models.py:1874 +#: core/models.py:2432 msgid "Current impact" msgstr "Impact actuel" -#: core/models.py:1878 +#: core/models.py:2436 msgid "Current level" msgstr "Niveau actuel" -#: core/models.py:1880 +#: core/models.py:2438 msgid "" "The risk level given the current measures. Automatically updated on Save, " "based on the chosen risk matrix" @@ -942,19 +1107,19 @@ msgstr "" "automatiquement lors de l'enregistrement, sur la base de la matrice de " "risque choisie." -#: core/models.py:1886 +#: core/models.py:2444 msgid "Residual probability" msgstr "Probabilité résiduelle" -#: core/models.py:1889 +#: core/models.py:2447 msgid "Residual impact" msgstr "Impact résiduel" -#: core/models.py:1893 +#: core/models.py:2451 msgid "Residual level" msgstr "Niveau résiduel" -#: core/models.py:1895 +#: core/models.py:2453 msgid "" "The risk level when all the extra measures are done. Automatically updated " "on Save, based on the chosen risk matrix" @@ -963,61 +1128,55 @@ msgstr "" "œuvre. Mis à jour automatiquement lors de l'enregistrement, sur la base de " "la matrice de risque choisie." -#: core/models.py:1903 +#: core/models.py:2461 msgid "Treatment status" msgstr "Statut de traitement" -#: core/models.py:1906 -#, fuzzy -#| msgid "Justification" -msgid "Qualifications" -msgstr "Justification" - -#: core/models.py:1910 +#: core/models.py:2470 msgid "Strength of Knowledge" msgstr "Force de la connaissance" -#: core/models.py:1911 +#: core/models.py:2471 msgid "The strength of the knowledge supporting the assessment" msgstr "La force de la connaissance soutenant l'évaluation" -#: core/models.py:1914 core/models.py:2638 +#: core/models.py:2474 core/models.py:3337 msgid "Justification" msgstr "Justification" -#: core/models.py:1920 +#: core/models.py:2480 msgid "Risk scenario" msgstr "Scénario de risque" -#: core/models.py:1921 core/models.py:2603 +#: core/models.py:2481 core/models.py:3302 msgid "Risk scenarios" msgstr "Scénarios de risque" -#: core/models.py:2031 +#: core/models.py:2599 msgid ": " msgstr ": " -#: core/models.py:2063 core/templates/core/audit_report.html:43 +#: core/models.py:2627 core/templates/core/audit_report.html:43 msgid "Selected implementation groups" msgstr "Groupes d'implémentation sélectionnés" -#: core/models.py:2073 core/models.py:2525 +#: core/models.py:2640 core/models.py:3170 msgid "Compliance assessment" msgstr "Évaluation de conformité" -#: core/models.py:2074 +#: core/models.py:2641 msgid "Compliance assessments" msgstr "Évaluations de conformité" -#: core/models.py:2311 +#: core/models.py:2922 msgid "{}: Compliance assessment is still in progress" msgstr "{} : L'évaluation de la conformité est toujours en cours" -#: core/models.py:2324 +#: core/models.py:2935 msgid "{}: No author assigned to this compliance assessment" msgstr "{} : Aucun auteur n'a été affecté à cette évaluation de conformité" -#: core/models.py:2351 +#: core/models.py:2962 #, fuzzy #| msgid "" #| "{}: Requirement assessment status is compliant or partially compliant " @@ -1029,94 +1188,94 @@ msgstr "" "{} : Le statut de l'évaluation de l'exigence est conforme ou partiellement " "conforme, sans aucun mesure appliquée" -#: core/models.py:2376 +#: core/models.py:2987 msgid "{}: Applied control has no reference control selected" msgstr "" "{} : La mesure appliquée ne comporte pas de mesure de référence sélectionné" -#: core/models.py:2402 +#: core/models.py:3013 msgid "{}: Evidence has no file uploaded" msgstr "{} : La preuve ne comporte pas de fichier téléchargé" -#: core/models.py:2488 +#: core/models.py:3133 msgid "Not assessed" msgstr "Non évalué" -#: core/models.py:2489 +#: core/models.py:3134 msgid "Partially compliant" msgstr "Partiellement conforme" -#: core/models.py:2490 +#: core/models.py:3135 #, fuzzy #| msgid "Non compliant" msgid "Non-compliant" msgstr "Non conforme" -#: core/models.py:2491 +#: core/models.py:3136 msgid "Compliant" msgstr "Conforme" -#: core/models.py:2492 +#: core/models.py:3137 msgid "Not applicable" msgstr "Non applicable" -#: core/models.py:2503 +#: core/models.py:3148 msgid "Result" msgstr "Résultat" -#: core/models.py:2509 +#: core/models.py:3154 msgid "Score" msgstr "Score" -#: core/models.py:2513 +#: core/models.py:3158 msgid "Is scored" msgstr "Est noté" -#: core/models.py:2529 +#: core/models.py:3174 msgid "Requirement" msgstr "Exigence" -#: core/models.py:2539 +#: core/models.py:3184 msgid "Selected" msgstr "Sélectionné" -#: core/models.py:2543 +#: core/models.py:3188 msgid "Mapping inference" msgstr "Inference de mapping" -#: core/models.py:2548 +#: core/models.py:3193 msgid "Answer" msgstr "" -#: core/models.py:2585 +#: core/models.py:3280 msgid "Requirement assessment" msgstr "Évaluation de l'exigence" -#: core/models.py:2586 +#: core/models.py:3281 msgid "Requirement assessments" msgstr "Évaluations de l'exigence" -#: core/models.py:2594 +#: core/models.py:3293 msgid "Created" msgstr "Créé" -#: core/models.py:2595 +#: core/models.py:3294 msgid "Submitted" msgstr "Soumis" -#: core/models.py:2596 +#: core/models.py:3295 msgid "Accepted" msgstr "Accepté" -#: core/models.py:2597 +#: core/models.py:3296 msgid "Rejected" msgstr "Rejeté" -#: core/models.py:2598 +#: core/models.py:3297 msgid "Revoked" msgstr "Révoqué" -#: core/models.py:2605 +#: core/models.py:3304 msgid "" "Select the risk scenarios to be accepted, attention they must be part of the " "chosen domain" @@ -1124,39 +1283,39 @@ msgstr "" "Sélectionnez les scénarios de risque à accepter, faites attention, ils " "doivent faire partie du domaine choisi" -#: core/models.py:2611 +#: core/models.py:3310 msgid "Risk owner and approver identity" msgstr "Identité du propriétaire du risque et de l'approbateur" -#: core/models.py:2612 core/utils.py:52 core/utils.py:60 core/utils.py:63 +#: core/models.py:3311 core/utils.py:52 core/utils.py:60 core/utils.py:63 msgid "Approver" msgstr "Approbateur" -#: core/models.py:2621 +#: core/models.py:3320 msgid "State" msgstr "État" -#: core/models.py:2624 +#: core/models.py:3323 msgid "Specify when the risk acceptance will no longer apply" msgstr "Précisez quand l'acceptation du risque ne sera plus valable" -#: core/models.py:2629 +#: core/models.py:3328 msgid "Acceptance date" msgstr "Date d'acceptation" -#: core/models.py:2632 +#: core/models.py:3331 msgid "Rejection date" msgstr "Date de rejet" -#: core/models.py:2635 +#: core/models.py:3334 msgid "Revocation date" msgstr "Date de révocation" -#: core/models.py:2647 +#: core/models.py:3346 msgid "Risk acceptance" msgstr "Acceptation du risque" -#: core/models.py:2648 +#: core/models.py:3347 msgid "Risk acceptances" msgstr "Acceptations du risque" @@ -1249,7 +1408,7 @@ msgstr "ici" #: core/templates/registration/first_connexion_email.html:49 msgid "and request a password reset" -msgstr "et demander une réinitialisation du mot de passe" +msgstr "et demander une réinitialisation de mot de passe" #: core/templates/registration/first_connexion_email.html:54 #: core/templates/registration/password_reset_email.html:55 @@ -1467,17 +1626,20 @@ msgstr "Lecteur" msgid "Third-party respondent" msgstr "" -#: core/utils.py:74 +#: core/utils.py:78 msgid "French" msgstr "Français" -#: core/utils.py:75 +#: core/utils.py:79 msgid "English" msgstr "Anglais" -#: core/views.py:1668 +#: core/views.py:2257 msgid "CISO Assistant: A questionnaire has been assigned to you" -msgstr "" +msgstr "CISO Assistant : un questionnaire vous a été assigné" + +#~ msgid "Internal reference" +#~ msgstr "Référence interne" #~ msgid "Inactive" #~ msgstr "Inactif" diff --git a/backend/core/management/commands/reset_mail.py b/backend/core/management/commands/reset_mail.py index 2b3c24cdf..b0b11b4fa 100644 --- a/backend/core/management/commands/reset_mail.py +++ b/backend/core/management/commands/reset_mail.py @@ -2,6 +2,7 @@ from core.models import * from iam.models import User, Folder from ciso_assistant.settings import CISO_ASSISTANT_SUPERUSER_EMAIL +from django.utils.translation import gettext_lazy as _ class Command(BaseCommand): @@ -13,7 +14,7 @@ def handle(self, *args, **kwargs): try: admin.mailing( email_template_name="registration/password_reset_email.html", - subject="CISO Assistant: Password Reset", + subject=_("CISO Assistant: Password Reset"), ) self.stdout.write("reset mail sent") except Exception as e: diff --git a/backend/core/serializers.py b/backend/core/serializers.py index 3fd17dcb7..43332b224 100644 --- a/backend/core/serializers.py +++ b/backend/core/serializers.py @@ -216,6 +216,14 @@ class Meta: class AssetWriteSerializer(BaseModelSerializer): + ebios_rm_studies = serializers.PrimaryKeyRelatedField( + many=True, + queryset=EbiosRMStudy.objects.all(), + required=False, + allow_null=True, + write_only=True, + ) + class Meta: model = Asset fields = "__all__" diff --git a/backend/locale/fr/LC_MESSAGES/django.mo b/backend/locale/fr/LC_MESSAGES/django.mo index e544355a5..93dbe6bb0 100644 Binary files a/backend/locale/fr/LC_MESSAGES/django.mo and b/backend/locale/fr/LC_MESSAGES/django.mo differ diff --git a/backend/locale/fr/LC_MESSAGES/django.po b/backend/locale/fr/LC_MESSAGES/django.po index c4ce6ddbe..6a1b4ef18 100644 --- a/backend/locale/fr/LC_MESSAGES/django.po +++ b/backend/locale/fr/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-25 14:29+0000\n" +"POT-Creation-Date: 2024-12-11 18:23+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,101 +18,419 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: iam/models.py:75 +#: ebios_rm/models.py:20 +msgid "Planned" +msgstr "" + +#: ebios_rm/models.py:21 +msgid "In progress" +msgstr "" + +#: ebios_rm/models.py:22 +msgid "In review" +msgstr "" + +#: ebios_rm/models.py:23 +msgid "Done" +msgstr "" + +#: ebios_rm/models.py:24 +msgid "Deprecated" +msgstr "" + +#: ebios_rm/models.py:29 +msgid "Risk matrix" +msgstr "" + +#: ebios_rm/models.py:32 +msgid "" +"Risk matrix used as a reference for the study. Defaults to `urn:intuitem:" +"risk:library:risk-matrix-4x4-ebios-rm`" +msgstr "" + +#: ebios_rm/models.py:38 ebios_rm/models.py:118 +msgid "Assets" +msgstr "" + +#: ebios_rm/models.py:40 +msgid "Assets that are pertinent to the study" +msgstr "" + +#: ebios_rm/models.py:46 +msgid "Compliance assessments" +msgstr "" + +#: ebios_rm/models.py:49 +msgid "" +"Compliance assessments established as security baseline during workshop 1.4" +msgstr "" + +#: ebios_rm/models.py:55 +msgid "Risk assessments" +msgstr "" + +#: ebios_rm/models.py:57 +msgid "Risk assessments generated at the end of workshop 4" +msgstr "" + +#: ebios_rm/models.py:62 +msgid "Reference entity" +msgstr "" + +#: ebios_rm/models.py:64 +msgid "Entity that is the focus of the study" +msgstr "" + +#: ebios_rm/models.py:73 +msgid "Version of the Ebios RM study (eg. 1.0, 2.0, etc.)" +msgstr "" + +#: ebios_rm/models.py:74 +msgid "Version" +msgstr "" + +#: ebios_rm/models.py:81 +msgid "Status" +msgstr "" + +#: ebios_rm/models.py:88 +msgid "Authors" +msgstr "" + +#: ebios_rm/models.py:94 +msgid "Reviewers" +msgstr "" + +#: ebios_rm/models.py:97 +msgid "Observation" +msgstr "" + +#: ebios_rm/models.py:100 +msgid "Ebios RM Study" +msgstr "" + +#: ebios_rm/models.py:101 +msgid "Ebios RM Studies" +msgstr "" + +#: ebios_rm/models.py:112 ebios_rm/models.py:201 ebios_rm/models.py:254 +#: ebios_rm/models.py:365 ebios_rm/models.py:401 +msgid "EBIOS RM study" +msgstr "" + +#: ebios_rm/models.py:120 +msgid "Assets that are affected by the feared event" +msgstr "" + +#: ebios_rm/models.py:125 +msgid "Qualifications" +msgstr "" + +#: ebios_rm/models.py:127 +msgid "Qualifications carried by the feared event" +msgstr "" + +#: ebios_rm/models.py:131 +msgid "Gravity" +msgstr "" + +#: ebios_rm/models.py:132 ebios_rm/models.py:230 ebios_rm/models.py:320 +#: ebios_rm/models.py:382 ebios_rm/models.py:421 +msgid "Is selected" +msgstr "" + +#: ebios_rm/models.py:133 ebios_rm/models.py:231 ebios_rm/models.py:321 +#: ebios_rm/models.py:383 ebios_rm/models.py:422 +msgid "Justification" +msgstr "" + +#: ebios_rm/models.py:136 +msgid "Feared event" +msgstr "" + +#: ebios_rm/models.py:137 ebios_rm/models.py:205 +msgid "Feared events" +msgstr "" + +#: ebios_rm/models.py:169 +msgid "State" +msgstr "" + +#: ebios_rm/models.py:170 +msgid "Organized crime" +msgstr "" + +#: ebios_rm/models.py:171 +msgid "Terrorist" +msgstr "" + +#: ebios_rm/models.py:172 +msgid "Activist" +msgstr "" + +#: ebios_rm/models.py:173 +msgid "Professional" +msgstr "" + +#: ebios_rm/models.py:174 +msgid "Amateur" +msgstr "" + +#: ebios_rm/models.py:175 +msgid "Avenger" +msgstr "" + +#: ebios_rm/models.py:176 +msgid "Pathological" +msgstr "" + +#: ebios_rm/models.py:209 +msgid "Risk origin" +msgstr "" + +#: ebios_rm/models.py:211 +msgid "Target objective" +msgstr "" + +#: ebios_rm/models.py:213 +msgid "Motivation" +msgstr "" + +#: ebios_rm/models.py:218 +msgid "Resources" +msgstr "" + +#: ebios_rm/models.py:223 +msgid "Pertinence" +msgstr "" + +#: ebios_rm/models.py:228 +msgid "Activity" +msgstr "" + +#: ebios_rm/models.py:237 ebios_rm/models.py:370 +msgid "RO/TO couple" +msgstr "" + +#: ebios_rm/models.py:238 +msgid "RO/TO couples" +msgstr "" + +#: ebios_rm/models.py:248 +msgid "Client" +msgstr "" + +#: ebios_rm/models.py:249 +msgid "Partner" +msgstr "" + +#: ebios_rm/models.py:250 +msgid "Supplier" +msgstr "" + +#: ebios_rm/models.py:255 +msgid "EBIOS RM study that the stakeholder is part of" +msgstr "" + +#: ebios_rm/models.py:262 tprm/models.py:27 tprm/models.py:97 +msgid "Entity" +msgstr "" + +#: ebios_rm/models.py:264 +msgid "Entity qualified by the stakeholder" +msgstr "" + +#: ebios_rm/models.py:268 +msgid "Applied controls" +msgstr "" + +#: ebios_rm/models.py:271 +msgid "Controls applied to lower stakeholder criticality" +msgstr "" + +#: ebios_rm/models.py:275 +msgid "Category" +msgstr "" + +#: ebios_rm/models.py:279 +msgid "Current dependency" +msgstr "" + +#: ebios_rm/models.py:284 +msgid "Current penetration" +msgstr "" + +#: ebios_rm/models.py:289 +msgid "Current maturity" +msgstr "" + +#: ebios_rm/models.py:294 +msgid "Current trust" +msgstr "" + +#: ebios_rm/models.py:300 +msgid "Residual dependency" +msgstr "" + +#: ebios_rm/models.py:305 +msgid "Residual penetration" +msgstr "" + +#: ebios_rm/models.py:310 +msgid "Residual maturity" +msgstr "" + +#: ebios_rm/models.py:315 +msgid "Residual trust" +msgstr "" + +#: ebios_rm/models.py:324 +msgid "Stakeholder" +msgstr "" + +#: ebios_rm/models.py:325 ebios_rm/models.py:376 +msgid "Stakeholders" +msgstr "" + +#: ebios_rm/models.py:372 +msgid "RO/TO couple from which the attach path is derived" +msgstr "" + +#: ebios_rm/models.py:378 +msgid "Stakeholders leveraged by the attack path" +msgstr "" + +#: ebios_rm/models.py:381 ebios_rm/models.py:419 +msgid "Description" +msgstr "" + +#: ebios_rm/models.py:386 +msgid "Attack path" +msgstr "" + +#: ebios_rm/models.py:387 ebios_rm/models.py:407 +msgid "Attack paths" +msgstr "" + +#: ebios_rm/models.py:409 +msgid "Attack paths that are pertinent to the operational scenario" +msgstr "" + +#: ebios_rm/models.py:413 +msgid "Threats" +msgstr "" + +#: ebios_rm/models.py:416 +msgid "Threats leveraged by the operational scenario" +msgstr "" + +#: ebios_rm/models.py:420 +msgid "Likelihood" +msgstr "" + +#: ebios_rm/models.py:425 +msgid "Operational scenario" +msgstr "" + +#: ebios_rm/models.py:426 +msgid "Operational scenarios" +msgstr "" + +#: iam/models.py:78 msgid "GLOBAL" msgstr "" -#: iam/models.py:76 +#: iam/models.py:79 msgid "DOMAIN" msgstr "" -#: iam/models.py:77 +#: iam/models.py:80 msgid "ENCLAVE" msgstr "" -#: iam/models.py:86 +#: iam/models.py:90 msgid "parent folder" msgstr "" -#: iam/models.py:96 +#: iam/models.py:100 msgid "Folder" msgstr "" -#: iam/models.py:97 +#: iam/models.py:101 msgid "Folders" msgstr "" -#: iam/models.py:221 +#: iam/models.py:223 msgid "user group" msgstr "" -#: iam/models.py:222 iam/models.py:350 +#: iam/models.py:224 iam/models.py:371 msgid "user groups" msgstr "" -#: iam/models.py:279 +#: iam/models.py:299 msgid "Welcome to Ciso Assistant!" msgstr "Bienvenue sur CISO Assistant !" -#: iam/models.py:326 +#: iam/models.py:346 msgid "last name" msgstr "" -#: iam/models.py:327 +#: iam/models.py:347 msgid "first name" msgstr "" -#: iam/models.py:333 +#: iam/models.py:354 msgid "active" msgstr "" -#: iam/models.py:336 +#: iam/models.py:357 msgid "" "Designates whether this user should be treated as active. Unselect this " "instead of deleting accounts." msgstr "" -#: iam/models.py:340 +#: iam/models.py:361 msgid "date joined" msgstr "" -#: iam/models.py:342 +#: iam/models.py:363 msgid "superuser status" msgstr "" -#: iam/models.py:345 +#: iam/models.py:366 msgid "" "Designates that this user has all permissions without explicitly assigning " "them." msgstr "" -#: iam/models.py:353 +#: iam/models.py:374 msgid "" "The user groups this user belongs to. A user will get all permissions " "granted to each of their user groups." msgstr "" -#: iam/models.py:368 +#: iam/models.py:389 msgid "user" msgstr "" -#: iam/models.py:369 +#: iam/models.py:390 msgid "users" msgstr "" -#: iam/models.py:511 +#: iam/models.py:557 msgid "permissions" msgstr "" -#: iam/models.py:526 +#: iam/models.py:572 msgid "Domain" msgstr "" -#: iam/models.py:532 +#: iam/models.py:578 msgid "Role" msgstr "" -#: iam/models.py:533 +#: iam/models.py:579 msgid "sub folders are visible" msgstr "" @@ -156,87 +474,87 @@ msgstr "" msgid "Key" msgstr "" -#: iam/views.py:97 +#: iam/views.py:128 msgid "CISO Assistant: Password Reset" -msgstr "" +msgstr "CISO Assistant : réinitialisation de mot de passe" #: tprm/models.py:20 msgid "Owned folders" msgstr "" -#: tprm/models.py:27 tprm/models.py:82 -msgid "Entity" -msgstr "" - #: tprm/models.py:28 msgid "Entities" msgstr "" -#: tprm/models.py:33 +#: tprm/models.py:42 msgid "Blocker" msgstr "" -#: tprm/models.py:34 +#: tprm/models.py:43 msgid "Warning" msgstr "" -#: tprm/models.py:35 +#: tprm/models.py:44 msgid "Ok" msgstr "" -#: tprm/models.py:36 +#: tprm/models.py:45 msgid "Not applicable" msgstr "" -#: tprm/models.py:38 tprm/models.py:115 +#: tprm/models.py:47 tprm/models.py:130 msgid "Criticality" msgstr "" -#: tprm/models.py:39 +#: tprm/models.py:48 msgid "Penetration" msgstr "" -#: tprm/models.py:40 +#: tprm/models.py:49 msgid "Dependency" msgstr "" -#: tprm/models.py:41 +#: tprm/models.py:50 msgid "Maturity" msgstr "" -#: tprm/models.py:42 +#: tprm/models.py:51 msgid "Trust" msgstr "" -#: tprm/models.py:51 tprm/models.py:121 +#: tprm/models.py:55 +msgid "Representative" +msgstr "" + +#: tprm/models.py:66 tprm/models.py:136 msgid "Solutions" msgstr "" -#: tprm/models.py:62 +#: tprm/models.py:77 msgid "Conclusion" msgstr "" -#: tprm/models.py:68 +#: tprm/models.py:83 msgid "Entity assessment" msgstr "" -#: tprm/models.py:69 +#: tprm/models.py:84 msgid "Entity assessments" msgstr "" -#: tprm/models.py:104 +#: tprm/models.py:119 msgid "Provider entity" msgstr "" -#: tprm/models.py:110 +#: tprm/models.py:125 msgid "Recipient entity" msgstr "" -#: tprm/models.py:120 +#: tprm/models.py:135 msgid "Solution" msgstr "" -#: tprm/serializers.py:73 +#: tprm/serializers.py:74 msgid "Framework required" msgstr "" diff --git a/frontend/messages/cz.json b/frontend/messages/cz.json index bf0e1bb6a..fe3447b1e 100644 --- a/frontend/messages/cz.json +++ b/frontend/messages/cz.json @@ -442,7 +442,7 @@ "yourStreamlined": "Vaše zefektivněné", "oneStopShop": "jednotné řešení", "forComplianceRiskManagement": "pro řízení souladu a rizik.", - "youCanSetPAsswordHere": "Zde si můžete nastavit heslo", + "youCanSetPAsswordHere": "Zde si můžete nastavit heslo.", "setPassword": "Nastavit heslo", "logIntoYourAccount": "Přihlaste se ke svému účtu", "youNeedToLogIn": "Pro přístup ke všem funkcím se musíte přihlásit", diff --git a/frontend/messages/de.json b/frontend/messages/de.json index 269002270..d14bdbaab 100644 --- a/frontend/messages/de.json +++ b/frontend/messages/de.json @@ -444,7 +444,7 @@ "yourStreamlined": "Ihr optimierter", "oneStopShop": "One-Stop-Shop", "forComplianceRiskManagement": "für Compliance- und Risikomanagement.", - "youCanSetPAsswordHere": "Sie können hier Ihr Passwort festlegen", + "youCanSetPAsswordHere": "Sie können hier Ihr Passwort festlegen.", "setPassword": "Passwort festlegen", "logIntoYourAccount": "Melden Sie sich in Ihrem Konto an", "youNeedToLogIn": "Sie müssen sich anmelden, um auf alle Funktionen zuzugreifen", diff --git a/frontend/messages/en.json b/frontend/messages/en.json index 499423bfb..3e3526fbd 100644 --- a/frontend/messages/en.json +++ b/frontend/messages/en.json @@ -447,7 +447,7 @@ "yourStreamlined": "Your streamlined", "oneStopShop": "one-stop shop", "forComplianceRiskManagement": "for compliance and risk management.", - "youCanSetPAsswordHere": "You can set your password here", + "youCanSetPAsswordHere": "You can set your password here.", "setPassword": "Set password", "logIntoYourAccount": "Log into your account", "youNeedToLogIn": "You need to login to access all the features", @@ -985,5 +985,15 @@ "identifyRoTo": "Identify RO/TO", "evaluateRoTo": "Evaluate RO/TO", "selectRoTo": "Select RO/TO", + "resetPasswordHere": "You can reset your password here.", + "resetPassword": "Reset password", + "ebiosRm": "Ebios RM", + "workshopOne": "Workshop 1", + "refIdSemiColon": "Refence ID:", + "addFearedEvent": "Add feared event", + "addEbiosRMstudy": "Add Ebios RM Study", + "noAuthor": "No author assigned", + "noReviewer": "No reviewer assigned", + "selectAudit": "Select audit", "errorAssetGraphMustNotContainCycles": "The asset graph must not contain cycles." } diff --git a/frontend/messages/es.json b/frontend/messages/es.json index c5804188d..4c2370565 100644 --- a/frontend/messages/es.json +++ b/frontend/messages/es.json @@ -444,7 +444,7 @@ "yourStreamlined": "Tu simplificado", "oneStopShop": "todo en uno", "forComplianceRiskManagement": "para la gestión de cumplimiento y riesgos.", - "youCanSetPAsswordHere": "Puede establecer su contraseña aquí", + "youCanSetPAsswordHere": "Puede establecer su contraseña aquí.", "setPassword": "Establecer contraseña", "logIntoYourAccount": "Inicie sesión en su cuenta", "youNeedToLogIn": "Debe iniciar sesión para acceder a todas las funciones", diff --git a/frontend/messages/fr.json b/frontend/messages/fr.json index 99beff3c0..a7a31ad1d 100644 --- a/frontend/messages/fr.json +++ b/frontend/messages/fr.json @@ -447,7 +447,7 @@ "yourStreamlined": "Votre solution", "oneStopShop": "tout-en-un", "forComplianceRiskManagement": "pour la conformité et la gestion des risques.", - "youCanSetPAsswordHere": "Vous pouvez définir votre mot de passe ici", + "youCanSetPAsswordHere": "Vous pouvez définir votre mot de passe ici.", "setPassword": "Définir le mot de passe", "logIntoYourAccount": "Connectez-vous à votre compte", "youNeedToLogIn": "Vous devez vous connecter pour accéder à toutes les fonctionnalités", @@ -871,7 +871,6 @@ "addTag": "Ajouter une étiquette", "tagsHelpText": "Les étiquettes sont utilisées pour classer et filtrer les éléments. Vous pouvez ajouter des étiquettes dans la section Extra", "existingMeasures": "Mesures existantes", - "youCanSetPasswordHere": "Vous pouvez définir votre mot de passe ici", "forgotPassword": "Mot de passe oublié", "ssoSettingsUpdated": "Paramètres SSO mis à jour", "scoreSemiColon": "Score:", @@ -903,5 +902,7 @@ "bringTheEvidencesHelpText": "Si désactivé, l'objet sera dupliqué sans ses preuves", "existingControlsHelper": "Que disposez-vous actuellement pour gérer ce risque", "extraControlsHelper": "Que ferez-vous pour atténuer ce risque", - "existingContextHelper": "Description des mesures existantes (ce champ sera bientôt obsolète)" + "existingContextHelper": "Description des mesures existantes (ce champ sera bientôt obsolète)", + "resetPasswordHere": "Vous pouvez réinitialiser votre mot de passe ici.", + "resetPassword": "Réinitialiser le mot de passe" } diff --git a/frontend/messages/it.json b/frontend/messages/it.json index 10b260ee0..675fa1f2d 100644 --- a/frontend/messages/it.json +++ b/frontend/messages/it.json @@ -444,7 +444,7 @@ "yourStreamlined": "Il tuo", "oneStopShop": "punto unico di accesso (one-stop-shop)", "forComplianceRiskManagement": "per la gestione delle conformità e dei rischi.", - "youCanSetPAsswordHere": "Puoi impostare la tua password qui", + "youCanSetPAsswordHere": "Puoi impostare la tua password qui.", "setPassword": "Imposta password", "logIntoYourAccount": "Accedi", "youNeedToLogIn": "Devi accedere per poter utilizzare tutte le funzionalità", diff --git a/frontend/messages/nl.json b/frontend/messages/nl.json index f8efeae7a..b70508109 100644 --- a/frontend/messages/nl.json +++ b/frontend/messages/nl.json @@ -444,7 +444,7 @@ "yourStreamlined": "Je gestroomlijnde", "oneStopShop": "one-stop-shop", "forComplianceRiskManagement": "voor naleving en risicomanagement.", - "youCanSetPAsswordHere": "Je kunt hier je wachtwoord instellen", + "youCanSetPAsswordHere": "Je kunt hier je wachtwoord instellen.", "setPassword": "Wachtwoord instellen", "logIntoYourAccount": "Log in op je account", "youNeedToLogIn": "Je moet inloggen om toegang te krijgen tot alle functies", diff --git a/frontend/messages/pl.json b/frontend/messages/pl.json index 7eff89efe..667ebc3b5 100644 --- a/frontend/messages/pl.json +++ b/frontend/messages/pl.json @@ -444,7 +444,7 @@ "yourStreamlined": "Twoje usprawnione", "oneStopShop": "jedno miejsce", "forComplianceRiskManagement": "dla zgodności i zarządzania ryzykiem.", - "youCanSetPAsswordHere": "Możesz ustawić swoje hasło tutaj", + "youCanSetPAsswordHere": "Możesz ustawić swoje hasło tutaj.", "setPassword": "Ustaw hasło", "logIntoYourAccount": "Zaloguj się na swoje konto", "youNeedToLogIn": "Musisz się zalogować, aby uzyskać dostęp do wszystkich funkcji", diff --git a/frontend/messages/pt.json b/frontend/messages/pt.json index 4c4271b0b..5c69c42e9 100644 --- a/frontend/messages/pt.json +++ b/frontend/messages/pt.json @@ -444,7 +444,7 @@ "yourStreamlined": "Sua solução", "oneStopShop": "tudo em um", "forComplianceRiskManagement": "para conformidade e gerenciamento de riscos.", - "youCanSetPAsswordHere": "Você pode definir sua senha aqui", + "youCanSetPAsswordHere": "Você pode definir sua senha aqui.", "setPassword": "Definir senha", "logIntoYourAccount": "Faça login em sua conta", "youNeedToLogIn": "Você precisa fazer login para acessar todos os recursos", diff --git a/frontend/messages/ro.json b/frontend/messages/ro.json index b451cbb0a..f6c73e91c 100644 --- a/frontend/messages/ro.json +++ b/frontend/messages/ro.json @@ -444,7 +444,7 @@ "yourStreamlined": "Asistentul tău", "oneStopShop": "universal", "forComplianceRiskManagement": "pentru conformitate și managementul riscurilor.", - "youCanSetPAsswordHere": "Puteți seta parola dvs. aici", + "youCanSetPAsswordHere": "Puteți seta parola dvs. aici.", "setPassword": "Setează parola", "logIntoYourAccount": "Conectați-vă la contul dvs.", "youNeedToLogIn": "Trebuie să vă conectați pentru a accesa toate funcțiile", diff --git a/frontend/messages/sv.json b/frontend/messages/sv.json index 2493768ff..7396758e8 100644 --- a/frontend/messages/sv.json +++ b/frontend/messages/sv.json @@ -859,7 +859,7 @@ "addTag": "Lägg till etikett", "tagsHelpText": "Etiketter hjälper till att kategorisera och filtrera flera objekt. Du kan hantera dem i menyn Extra.", "existingMeasures": "Befintliga kontroller", - "youCanSetPasswordHere": "Du kan ställa in ditt lösenord här", + "youCanSetPasswordHere": "Du kan ställa in ditt lösenord här.", "forgotPassword": "Glömt lösenord", "ssoSettingsUpdated": "SSO-inställningar uppdaterade", "scoreSemiColon": "Göra:", diff --git a/frontend/src/hooks.server.ts b/frontend/src/hooks.server.ts index cfcd9c03d..2add51d4a 100644 --- a/frontend/src/hooks.server.ts +++ b/frontend/src/hooks.server.ts @@ -4,6 +4,7 @@ import type { User } from '$lib/utils/types'; import { redirect, type Handle, type RequestEvent, type HandleFetch } from '@sveltejs/kit'; import { setFlash } from 'sveltekit-flash-message/server'; import { languageTag, setLanguageTag } from '$paraglide/runtime'; +import { DEFAULT_LANGUAGE } from '$lib/utils/constants'; import { loadFeatureFlags } from '$lib/feature-flags'; @@ -66,7 +67,7 @@ export const handle: Handle = async ({ event, resolve }) => { const errorId = new URL(event.request.url).searchParams.get('error'); if (errorId) { - setLanguageTag(event.cookies.get('ciso_lang') || 'en'); + setLanguageTag(event.cookies.get('ciso_lang') || DEFAULT_LANGUAGE); setFlash({ type: 'error', message: safeTranslate(errorId) }, event); redirect(302, '/login'); } diff --git a/frontend/src/lib/components/Forms/ModelForm.svelte b/frontend/src/lib/components/Forms/ModelForm.svelte index feada4836..8ca71675b 100644 --- a/frontend/src/lib/components/Forms/ModelForm.svelte +++ b/frontend/src/lib/components/Forms/ModelForm.svelte @@ -58,6 +58,7 @@ export let suggestions: { [key: string]: any } = {}; export let cancelButton = true; export let duplicate = false; + export let customNameDescription = false; const URLModel = model.urlModel as urlModel; export let schema = modelSchema(URLModel); @@ -163,7 +164,7 @@ }} /> {/if} - {#if shape.name} + {#if shape.name && !customNameDescription} {/if} - {#if shape.description} + {#if shape.description && !customNameDescription}