Skip to content
This repository has been archived by the owner on Dec 13, 2022. It is now read-only.

Commit

Permalink
feat(Product Adoption): add user consent option to send plain or anon…
Browse files Browse the repository at this point in the history
…ymised platform informations. (#10094)
  • Loading branch information
jeremyjaouen committed Sep 9, 2021
1 parent abc30e8 commit dd1e585
Show file tree
Hide file tree
Showing 12 changed files with 154 additions and 34 deletions.
1 change: 0 additions & 1 deletion cron/centAcl.php
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,6 @@
}
$pearDB->commit();
$res1->closeCursor();

} catch (\PDOException $e) {
$pearDB->rollBack();
$centreonLog->insertLog(
Expand Down
8 changes: 8 additions & 0 deletions lang/fr_FR.UTF-8/LC_MESSAGES/help.po
Original file line number Diff line number Diff line change
Expand Up @@ -7231,3 +7231,11 @@ msgstr "URL complète permettant d'accéder à l'API du serveur central Centreon

msgid "Allows to skip the SSL certificate check on the Centreon's central server."
msgstr "Permet de ne pas vérifier le certificat SSL du serveur central Centreon."

msgid ""
"No: You don't consent to share your platform data. Contact Details: You consent to share your platform data including"
"your alias and email. Anonymized: You consent to share your platform data, but your alias and email will be anonymized."
msgstr ""
"Non: Vous ne consentez pas à partager les informations de votre plateforme. Détails du Contact: Vous consentez"
"à partager les informations de votre plateforme, y compris votre alias et email. Anonymisé: Vous consentez à partager"
"les informations de votre plateforme, mais votre alias et votre email seront anonymisés."
6 changes: 6 additions & 0 deletions lang/fr_FR.UTF-8/LC_MESSAGES/messages.po
Original file line number Diff line number Diff line change
Expand Up @@ -16174,3 +16174,9 @@ msgstr "[%s] La date \"%s\" devait être au maximum au %s"

msgid "The parameter \"%s\" must be an integer"
msgstr "Le paramètre \"%s\" doit être un entier"

msgid "Contact Details"
msgstr "Détails du Contact"

msgid "Service graphs"
msgstr "Graphiques de services"
8 changes: 7 additions & 1 deletion www/include/Administration/myAccount/DB-Func.php
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,8 @@ function updateContact($contact_id = null)
'default_page = :defaultPage, ' .
'contact_js_effects = :contactJsEffects, ' .
'show_deprecated_pages = :showDeprecatedPages, ' .
'contact_autologin_key = :contactAutologinKey';
'contact_autologin_key = :contactAutologinKey, ' .
'contact_platform_data_sending = :contactDataSending';
$password_encrypted = null;
if (!empty($ret['contact_passwd'])) {
$rq .= ', contact_passwd = :contactPasswd';
Expand Down Expand Up @@ -181,6 +182,11 @@ function updateContact($contact_id = null)
!empty($ret['contact_location']) ? $ret['contact_location'] : null,
\PDO::PARAM_INT
);
$stmt->bindValue(
':contactDataSending',
array_key_exists('contact_platform_data_sending', $ret) ? $ret['contact_platform_data_sending'] : null,
\PDO::PARAM_STR
);
$stmt->bindValue(':defaultPage', !empty($ret['default_page']) ? $ret['default_page'] : null, \PDO::PARAM_INT);
$stmt->bindValue(':contactJsEffects', isset($ret['contact_js_effects']) ? 1 : 0, \PDO::PARAM_STR);
$stmt->bindValue(':showDeprecatedPages', isset($ret['show_deprecated_pages']) ? 1 : 0, \PDO::PARAM_STR);
Expand Down
1 change: 1 addition & 0 deletions www/include/Administration/myAccount/formMyAccount.ihtml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@
<tr class="list_two"><td class="FormRowField">{$form.default_page.label}</td><td class="FormRowValue">{$form.default_page.html}</td></tr>
<tr class="list_one"><td class="FormRowField">{$form.show_deprecated_pages.label}</td><td class="FormRowValue">{$form.show_deprecated_pages.html}</td></tr>
<tr class="list_two"><td class="FormRowField">{$form.contact_js_effects.label}</td><td class="FormRowValue">{$form.contact_js_effects.html}</td></tr>
<tr class="list_one"><td class="FormRowField"><img class="helpTooltip" name="contact_platform_data_sending">{$form.contact_platform_data_sending.label}</td><td class="FormRowValue">{$form.contact_platform_data_sending.html}</td></tr>
<tr class="list_lvl_1">
<td class="ListColLvl1_name" colspan="2">
<h4>{t}Authentication{/t}</h4>
Expand Down
28 changes: 26 additions & 2 deletions www/include/Administration/myAccount/formMyAccount.php
Original file line number Diff line number Diff line change
Expand Up @@ -57,13 +57,21 @@
$centreonFeature = new CentreonFeature($pearDB);
}

try {
$licenseObject = $dependencyInjector['lm.license'];
$isLicenseValid = $licenseObject->validate(true);
} catch (\Exception $ex) {
$isLicenseValid = false;
}

/*
* Database retrieve information for the User
*/
$cct = array();
if ($o == "c") {
$query = "SELECT contact_id, contact_name, contact_alias, contact_lang, contact_email, contact_pager,
contact_js_effects, contact_autologin_key, default_page, show_deprecated_pages, contact_auth_type
contact_js_effects, contact_autologin_key, default_page, show_deprecated_pages, contact_auth_type,
contact_platform_data_sending
FROM contact WHERE contact_id = :id";
$DBRESULT = $pearDB->prepare($query);
$DBRESULT->bindValue(':id', $centreon->user->get_id(), \PDO::PARAM_INT);
Expand Down Expand Up @@ -138,8 +146,24 @@
$form->addElement('checkbox', 'show_deprecated_pages', _("Show deprecated pages"), null, $attrsText);
$form->addElement('checkbox', 'contact_js_effects', _("Animation effects"), null, $attrsText);

$platformDataSendingRadios = [
$form->createElement('radio', null, null, _('No'), '0'),
$form->createElement('radio', null, null, _('Contact Details'), '1'),
$form->createElement('radio', null, null, _('Anonymized'), '2')
];

if ($isLicenseValid) {
unset($platformDataSendingRadios[0]);
}

$form->addGroup(
$platformDataSendingRadios,
'contact_platform_data_sending',
_('Contextual assistance and associated data sending'),
'&nbsp;'
);

/* ------------------------ Topoogy ---------------------------- */
/* ------------------------ Topology ---------------------------- */
$pages = [];
$aclUser = $centreon->user->lcaTStr;
if (!empty($aclUser)) {
Expand Down
7 changes: 7 additions & 0 deletions www/include/configuration/configObject/contact/DB-Func.php
Original file line number Diff line number Diff line change
Expand Up @@ -1158,6 +1158,13 @@ function sanitizeFormContactParameters(array $ret): array
: '2'
];
break;
case 'contact_platform_data_sending':
$bindParams[':' . $inputName] = [
\PDO::PARAM_STR => in_array($inputValue[$inputName], ['0', '1', '2'])
? $inputValue[$inputName]
: '0'
];
break;
case 'contact_admin':
$bindParams[':' . $inputName] = [
\PDO::PARAM_STR => in_array($inputValue[$inputName], ['0', '1'])
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,8 @@
</td>
</tr>
<tr class="list_one"><td class="FormRowField">{$form.contact_activate.label}</td><td class="FormRowValue">{$form.contact_activate.html}</td></tr>
<tr class="list_two"><td class="FormRowField">{$form.contact_comment.label}</td><td class="FormRowValue">{$form.contact_comment.html}</td></tr>
<tr class="list_two"><td class="FormRowField"><img class="helpTooltip" name="contact_platform_data_sending">{$form.contact_platform_data_sending.label}</td><td class="FormRowValue">{$form.contact_platform_data_sending.html}</td></tr>
<tr class="list_one"><td class="FormRowField">{$form.contact_comment.label}</td><td class="FormRowValue">{$form.contact_comment.html}</td></tr>
{if $o == "a" || $o == "c"}
<tr class="list_lvl_2"><td class="ListColLvl2_name" colspan="2">{$form.required._note}</td></tr>
{/if}
Expand Down
Loading

0 comments on commit dd1e585

Please sign in to comment.