diff --git a/client/modules/vitis/forms/user/user_vitis_user.json b/client/modules/vitis/forms/user/user_vitis_user.json index a5dacd7e5ccd46a776a8381a46c298adce8ab53f..6f550c0bd851c4a256a832dd97f7b8ef1d7a0a2c 100644 --- a/client/modules/vitis/forms/user/user_vitis_user.json +++ b/client/modules/vitis/forms/user/user_vitis_user.json @@ -139,7 +139,7 @@ "type": "radio", "name": "dataencrypt", "label": "FORM_DATAENCRYPT_USER_USER", - "nb_cols": 5, + "nb_cols": 3, "options": { "choices": [ { @@ -162,12 +162,19 @@ "nb_cols": 1 }, { - "type": "text", + "type": "password", "name": "secretkey", "label": "FORM_SECRETKEY_USER_USER", "required": false, "pattern": "^[^\t\r\n]+$", - "nb_cols": 6 + "visible": "= {{dataencrypt}} === true", + "tooltip": { + "title":"", + "content":"FORM_DATAENCRYPT_TOOLTIP_USER_USER", + "container": "body", + "html": true + }, + "nb_cols": 8 } ] }, diff --git a/client/modules/vitis/javascript/script_module.js b/client/modules/vitis/javascript/script_module.js index 716b8de908bc4dfb057afe25e838d92aa2463531..b15867c294f4eb7a6c96f0103c68d1c1af9c2b04 100644 --- a/client/modules/vitis/javascript/script_module.js +++ b/client/modules/vitis/javascript/script_module.js @@ -34,13 +34,11 @@ vitisApp.on('appMainDrtvLoaded', function () { // Cryptage de la clé secrète. var oFormValues = envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]; oFormValues['encrypted_secretkey'] = ""; - if (oFormValues['dataencrypt'] === true && (goog.isDefAndNotNull(oFormValues['secretkey']) && oFormValues['secretkey'] != "" && oFormValues['secretkey'].substr(0, 2) !== "0x")) { + if ((goog.isDefAndNotNull(oFormValues['secretkey']) && oFormValues['secretkey'] != "" && oFormValues['secretkey'].substr(0, 2) !== "0x")) { var key = oFormValues['login']; var ciphertext = des(key, oFormValues['secretkey'], 1, 0); oFormValues['encrypted_secretkey'] = stringToHex(ciphertext); } - else if (oFormValues['dataencrypt'] === false) - oFormValues['secretkey'] = ""; // Changement de mot de passe ? var oPasswordInput = document.querySelector("form[name='" + envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["name"] + "'] input[name='password']"); var oPasswordConfirmInput = document.querySelector("form[name='" + envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["name"] + "'] input[name='password_confirm']"); @@ -101,7 +99,7 @@ vitisApp.on('appMainDrtvLoaded', function () { } } // Décryptage de la clé secrète. - if (oFormValues['dataencrypt'] === true && (goog.isDefAndNotNull(oFormValues['secretkey']) && oFormValues['secretkey'] != "" && oFormValues['secretkey'].substr(0, 2) === "0x")) { + if ((goog.isDefAndNotNull(oFormValues['secretkey']) && oFormValues['secretkey'] != "" && oFormValues['secretkey'].substr(0, 2) === "0x")) { var key = oFormValues['login']; // Décrypte et Suprimme les caractères "NULL". oFormValues['secretkey'] = des(key, hexToString(oFormValues['secretkey']), 0, 0).replace(/\x00/g, ""); @@ -284,7 +282,7 @@ vitisApp.on('appMainDrtvLoaded', function () { link: function (scope, element, attrs) { // 1er affichage ou tri de la liste : maj de la mise en forme. var clearObserver = attrs.$observe("appUserRoleColumn", function (value) { - // Si le champ est vide : supprime l'icône. + // Si le champ est vide : supprime l'icône. if (scope["row"]["entity"][scope["col"]["field"]] === null || scope["row"]["entity"][scope["col"]["field"]] === "") element[0].className = ""; else { @@ -700,35 +698,33 @@ vitisApp.on('appMainDrtvLoaded', function () { } } // Chargement de la clé secrète (le web service vitis/users ne doit pas la retourner). - if (oFormValues['dataencrypt'] === true) { - var oUrlParams = { - "schema": "s_vitis", - "table": "user", - "filter": { - "relation": "AND", - "operators": [{ - "column": "user_id", - "compare_operator": "=", - "value": oFormValues["user_id"] - }] - }, - "attributs": "secretkey" - }; - ajaxRequest({ - "method": "GET", - "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/vitis/genericquerys/user", - "params": oUrlParams, - "success": function (response) { - if (response["data"]["status"] != 0) { - // Décryptage de la clé secrète. - var oUserSecretKey = envSrvc["extractWebServiceData"]("genericquerys", response["data"])[0]; - if (goog.isDefAndNotNull(oUserSecretKey['secretkey']) && oUserSecretKey['secretkey'] != "" && oUserSecretKey['secretkey'].substr(0, 2) === "0x") { - oFormValues['secretkey'] = des (oFormValues['login'], hexToString(oUserSecretKey['secretkey']), 0, 0).replace(/\x00/g, ""); - } - } - } - }); - } + var oUrlParams = { + "schema": "s_vitis", + "table": "user", + "filter": { + "relation": "AND", + "operators": [{ + "column": "user_id", + "compare_operator": "=", + "value": oFormValues["user_id"] + }] + }, + "attributs": "secretkey" + }; + ajaxRequest({ + "method": "GET", + "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/vitis/genericquerys/user", + "params": oUrlParams, + "success": function (response) { + if (response["data"]["status"] != 0) { + // Décryptage de la clé secrète. + var oUserSecretKey = envSrvc["extractWebServiceData"]("genericquerys", response["data"])[0]; + if (goog.isDefAndNotNull(oUserSecretKey['secretkey']) && oUserSecretKey['secretkey'] != "" && oUserSecretKey['secretkey'].substr(0, 2) === "0x") { + oFormValues['secretkey'] = des (oFormValues['login'], hexToString(oUserSecretKey['secretkey']), 0, 0).replace(/\x00/g, ""); + } + } + } + }); }); }; @@ -1693,9 +1689,9 @@ vitisApp.on('appMainDrtvLoaded', function () { envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["rows"].push(aMethodFields); envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["tr_status_method"] = sMethod; - // l'event submit du formulaire sera appelé après cette fonction + // l'event submit du formulaire sera appelé après cette fonction }; - + /** * loadVitisExploitation function. * Chargement des sections du mode "exploitation". @@ -1709,7 +1705,7 @@ vitisApp.on('appMainDrtvLoaded', function () { // Passage en mode "Update" (pour afficher les sections). envSrvc["sMode"] = "update"; }; - + /** * initExploitationSharedDirectoryForm function. * Chargement de l'arborescence du répertoire partagé. @@ -1738,7 +1734,7 @@ vitisApp.on('appMainDrtvLoaded', function () { document.getElementById(oFormElementDefinition["id"] + "_treeview").style.height = document.getElementById("container_mode_exploitation").clientHeight - 221 + "px"; }); }; - + /** * refreshExploitationSharedDirectoryTreeview function. * Recharge les données du treeview du répertoire partagé. @@ -1761,7 +1757,7 @@ vitisApp.on('appMainDrtvLoaded', function () { document.getElementById(oFormElementDefinition["id"] + "_treeview").style.height = document.getElementById("container_mode_exploitation").parentElement.clientHeight - 221 + "px"; }); }; - + /** * loadExploitationSharedDirectoryTreeviewData function. * Charge les données du treeview du répertoire partagé. @@ -1788,7 +1784,7 @@ vitisApp.on('appMainDrtvLoaded', function () { }); return promise; }; - + /** * deleteSharedDirectoryFiles function. * Charge les données du treeview du répertoire partagé. @@ -1846,7 +1842,7 @@ vitisApp.on('appMainDrtvLoaded', function () { $rootScope["modalWindow"]("confirm", "", oOptions); } }; - + /** * createSharedDirectoryFolder function. * Création d'un répertoire dans le répertoire partagé. @@ -1897,7 +1893,7 @@ vitisApp.on('appMainDrtvLoaded', function () { $rootScope["modalWindow"]("dialog", "FORM_NO_DIRECTORY_EXPLOITATION_EXPLOITATION", {"className": "modal-danger"}); } }; - + /** * uploadSharedDirectoryFile function. * Upload d'un fichier dans le répertoire partagé. @@ -1952,4 +1948,4 @@ vitisApp.on('appMainDrtvLoaded', function () { $rootScope["modalWindow"]("dialog", "FORM_NO_FILE_EXPLOITATION_EXPLOITATION", {"className": "modal-danger"}); } }; -}); \ No newline at end of file +}); diff --git a/client/modules/vitis/lang/lang-en.json b/client/modules/vitis/lang/lang-en.json index dc98a487ebd474dde8d906521ce10687fd6b5a2f..c59597f57237e1b798a09f72cfd22bf7a37df7ce 100644 --- a/client/modules/vitis/lang/lang-en.json +++ b/client/modules/vitis/lang/lang-en.json @@ -152,6 +152,7 @@ "FORM_PHONE_USER_USER" : "Telephone number (for SMS) in international E.164 format (+33 6 xx xx xx xx)", "FORM_TIMEZONE_ID_USER_USER" : "Time Zone", "FORM_FORMATDATE_ID_USER_USER" : "Date display format", + "FORM_DATAENCRYPT_TOOLTIP_USER_USER" : "The results produced by GTF will be encrypted using the \"AES 256\" algorithm, you will need a suitable tool to open these files. (ex: 7zip)", "": "", "USER_ROLE_TOOLTIP_TITLE_USERS_USER": "Description", "USER_ROLE_ADMIN_TOOLTIP_CONTENT_USERS_USER": "Administrator", diff --git a/client/modules/vitis/lang/lang-fr.json b/client/modules/vitis/lang/lang-fr.json index 9a882aa04bad00781d3d5434d5ee6f052a6bd3c3..3d61e64f4793d9987186c9080dab9b6924caf827 100644 --- a/client/modules/vitis/lang/lang-fr.json +++ b/client/modules/vitis/lang/lang-fr.json @@ -154,6 +154,7 @@ "FORM_PHONE_USER_USER" : "N° de téléphone (pour SMS) au format international E.164 (+33 6 xx xx xx xx)", "FORM_TIMEZONE_ID_USER_USER" : "Fuseau horaire", "FORM_FORMATDATE_ID_USER_USER" : "Format d'affichage des dates", + "FORM_DATAENCRYPT_TOOLTIP_USER_USER" : "Les résultats produits par GTF seront cryptés en utilisant l'algorithme 'AES 256', il vous faudra un outil adapté pour ouvrir ces fichiers. (ex: 7zip)", "": "", "USER_ROLE_TOOLTIP_TITLE_USERS_USER": "Description", "USER_ROLE_ADMIN_TOOLTIP_CONTENT_USERS_USER": "Administrateur", diff --git a/vas/rest/ws/vitis/Users.class.inc b/vas/rest/ws/vitis/Users.class.inc index 56ec511d7a516ff8aba5dce2358a5c15e95c5444..85fa8078684d68a54cb2458929d12413413de62a 100755 --- a/vas/rest/ws/vitis/Users.class.inc +++ b/vas/rest/ws/vitis/Users.class.inc @@ -416,10 +416,7 @@ class Users extends Vitis { $sLogin = mb_strtolower($this->aValues["login"], 'UTF-8'); $sLogin = str_replace(array('à', 'â', 'ä', 'á', 'ã', 'å', 'î', 'ï', 'ì', 'í', 'ô', 'ö', 'ò', 'ó', 'õ', 'ø', 'ù', 'û', 'ü', 'ú', 'é', 'è', 'ê', 'ë', 'ç', 'ÿ', 'ñ'), array('a', 'a', 'a', 'a', 'a', 'a', 'i', 'i', 'i', 'i', 'o', 'o', 'o', 'o', 'o', 'o', 'u', 'u', 'u', 'u', 'e', 'e', 'e', 'e', 'c', 'y', 'n',), $sLogin); unset($this->aValues['login']); - if (!empty($this->aValues['encrypted_secretkey'])) - $this->aValues['secretkey'] = $this->aValues['encrypted_secretkey']; - else - $this->aValues['secretkey'] = null; + $this->aValues['secretkey'] = $this->aValues['encrypted_secretkey']; $aReturn = $this->genericPut($this->aProperties['schema_framework'], 'v_user', 'user_id'); $aXmlRacineAttribute['status'] = $aReturn['sStatus']; $sMessage = $aReturn['sMessage'];