diff --git a/client/modules/vitis/forms/user/user_vitis_user.json b/client/modules/vitis/forms/user/user_vitis_user.json index 6f550c0bd851c4a256a832dd97f7b8ef1d7a0a2c..6042656ced48e36bbf7436f68eb19e85f3acec83 100644 --- a/client/modules/vitis/forms/user/user_vitis_user.json +++ b/client/modules/vitis/forms/user/user_vitis_user.json @@ -152,14 +152,16 @@ } ] }, - "default_value": false + "default_value": false, + "visible": "oProperties.enableEncryptionForUsers == true ? true : false" }, { "type": "hidden", "name": "encrypted_secretkey", "label": "", "required": false, - "nb_cols": 1 + "nb_cols": 1, + "visible": "oProperties.enableEncryptionForUsers == true ? true : false" }, { "type": "password", @@ -167,9 +169,9 @@ "label": "FORM_SECRETKEY_USER_USER", "required": false, "pattern": "^[^\t\r\n]+$", - "visible": "= {{dataencrypt}} === true", + "visible": "= {{dataencrypt}} === true && oProperties.enableEncryptionForUsers", "tooltip": { - "title":"", + "title":"FORM_DATAENCRYPT_TOOLTIP_USER_TITLE", "content":"FORM_DATAENCRYPT_TOOLTIP_USER_USER", "container": "body", "html": true diff --git a/client/modules/vitis/lang/lang-en.json b/client/modules/vitis/lang/lang-en.json index c59597f57237e1b798a09f72cfd22bf7a37df7ce..b383a8afabdd1545ff87faa5fea21f8ec3df13d8 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_TITLE" : "Data encryption", "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", diff --git a/client/modules/vitis/lang/lang-fr.json b/client/modules/vitis/lang/lang-fr.json index 79046043a1a90eaa5a8371a65f29302db4121f47..7ed0e0437dbb44de208982f66b059dcdaf04ff1b 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_TITLE" : "Cryptage des données", "FORM_DATAENCRYPT_TOOLTIP_USER_USER" : "Le cryptage des données entraîne le chiffrement avec l’algorithme AES-256 des jeux de données générés par GTF et téléchargeables. Si la clef de chiffrement personnelle n'est pas définie, une clé est générée aléatoirement à chaque traitement et envoyée à l'utilisateur avec le mail optionnel de notification. Cette clef ne peut pas être retrouvée et le message ne peut pas être renvoyé. Les utilisateurs doivent donc demander a être notifiés de la fin du traitement (fonctionnement par défaut) si leur clé de chiffrement n'est pas définie.", "": "", "USER_ROLE_TOOLTIP_TITLE_USERS_USER": "Description", diff --git a/vas/rest/index.vhtml b/vas/rest/index.vhtml index 4e0e614d1bd2d65f7ec472036138c5efa867865a..44fcbfafc04970d93a27ba07d5f48bf0eae08435 100755 --- a/vas/rest/index.vhtml +++ b/vas/rest/index.vhtml @@ -1,4 +1,8 @@ <?php - header('Content-type: '.$aValues['output'].'; charset='.$properties["page_encoding"]); + ob_end_flush(); + $aCurrentHeaders = apache_response_headers(); + if(!array_key_exists('Content-Type-Set-By', $aCurrentHeaders)){ + header('Content-type: '.$aValues['output'].'; charset='.$properties["page_encoding"]); + } echo $sMessage; -?> \ No newline at end of file +?> diff --git a/vas/rest/ws/vitis/FileDownloader.class.inc b/vas/rest/ws/vitis/FileDownloader.class.inc index 854558d81f05802278f69985a63b0d8562ecf041..c2f2e825c66a8686562611730132344501797afa 100755 --- a/vas/rest/ws/vitis/FileDownloader.class.inc +++ b/vas/rest/ws/vitis/FileDownloader.class.inc @@ -14,6 +14,7 @@ require_once 'Vitis.class.inc'; require_once ("aws_sdk/aws-autoloader.php"); require_once ("vmlib/phpUtil.inc"); +require_once "vmlib/files/Files_manager.class.inc"; class FileDownloader extends Vitis { /** @@ -127,8 +128,9 @@ class FileDownloader extends Vitis { return array("status" => 1, "fileName" => $sFileName); } - header("Content-Type: " . $sContentType); - if (in_array($sContentType, array("text/plain", 'application/pdf', 'text/html'))){ + header("Content-Type: " . $sContentType .'; charset='. $this->aProperties["page_encoding"]); + header("Content-Type-Set-By: vitis/filedownloader"); + if (in_array($sContentType, array("text/plain", 'application/pdf', 'text/html', 'application/xml', 'application/json'))){ header("Content-disposition: inline; filename=\"" . rawurlencode($sFileName) . "\""); } else { header("Content-disposition: attachment; filename=\"" . rawurlencode($sFileName) . "\""); diff --git a/vas/rest/ws/vitis/Users.class.inc b/vas/rest/ws/vitis/Users.class.inc index 85fa8078684d68a54cb2458929d12413413de62a..dbd30e03ec789141d57883e48ff65d690be7ac3e 100755 --- a/vas/rest/ws/vitis/Users.class.inc +++ b/vas/rest/ws/vitis/Users.class.inc @@ -271,6 +271,10 @@ class Users extends Vitis { $aXmlRacineAttribute['status'] = 0; $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); } else { + // suppression des valeur permettant d'activer l'encryption lors du post pour que l'administrateur ne puisse pas l'activer à travers l'API + unset($this->aValues['secretkey']); + unset($this->aValues['dataencrypt']); + unset($this->aValues['encrypted_secretkey']); // insert user in table $iId = $this->oConnection->oBd->insert($this->aProperties['schema_framework'], 'v_user', $this->aValues, $this->aProperties['schema_framework'] . '.seq_common', 'user_id'); if ($this->oConnection->oBd->enErreur()) { @@ -417,6 +421,11 @@ class Users extends Vitis { $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']); $this->aValues['secretkey'] = $this->aValues['encrypted_secretkey']; + if($this->aProperties['enableEncryptionForUsers'] !== true){ + unset($this->aValues['secretkey']); + unset($this->aValues['dataencrypt']); + unset($this->aValues['encrypted_secretkey']); + } $aReturn = $this->genericPut($this->aProperties['schema_framework'], 'v_user', 'user_id'); $aXmlRacineAttribute['status'] = $aReturn['sStatus']; $sMessage = $aReturn['sMessage'];