Clean module datapolicy
This commit is contained in:
parent
ee05abaa27
commit
90d58bde27
@ -98,6 +98,12 @@ source_file = htdocs/langs/en_US/cron.lang
|
||||
source_lang = en_US
|
||||
type = MOZILLAPROPERTIES
|
||||
|
||||
[dolibarr.datapolicy]
|
||||
file_filter = htdocs/langs/<lang>/datapolicy.lang
|
||||
source_file = htdocs/langs/en_US/datapolicy.lang
|
||||
source_lang = en_US
|
||||
type = MOZILLAPROPERTIES
|
||||
|
||||
[dolibarr.deliveries]
|
||||
file_filter = htdocs/langs/<lang>/deliveries.lang
|
||||
source_file = htdocs/langs/en_US/deliveries.lang
|
||||
|
||||
@ -106,7 +106,7 @@ class modDataPolicy extends DolibarrModules {
|
||||
$this->depends = array('always'=>'modCron'); // List of module class names as string that must be enabled if this module is enabled
|
||||
$this->requiredby = array(); // List of module ids to disable if this one is disabled
|
||||
$this->conflictwith = array(); // List of module class names as string this module is in conflict with
|
||||
$this->langfiles = array("datapolicy@datapolicy");
|
||||
$this->langfiles = array("datapolicy");
|
||||
$this->phpmin = array(5, 3); // Minimum version of PHP required by module
|
||||
$this->need_dolibarr_version = array(4, 0); // Minimum version of Dolibarr required by module
|
||||
$this->warnings_activation = array(); // Warning to show when we activate module. array('always'='text') or array('FR'='textfr','ES'='textes'...)
|
||||
@ -217,23 +217,23 @@ class modDataPolicy extends DolibarrModules {
|
||||
|
||||
/*
|
||||
// Extrafield contact
|
||||
$result1 = $extrafields->addExtraField('datapolicy_consentement', $langs->trans("DATAPOLICY_consentement"), 'boolean', 101, 3, 'thirdparty', 0, 0, '', '', 1, '', '3', 0, '', '', 'datapolicy@datapolicy', '$conf->datapolicy->enabled');
|
||||
$result1 = $extrafields->addExtraField('datapolicy_opposition_traitement', $langs->trans("DATAPOLICY_opposition_traitement"), 'boolean', 102, 3, 'thirdparty', 0, 0, '', '', 1, '', '3', 0, '', '', 'datapolicy@datapolicy', '$conf->datapolicy->enabled');
|
||||
$result1 = $extrafields->addExtraField('datapolicy_opposition_prospection', $langs->trans("DATAPOLICY_opposition_prospection"), 'boolean', 103, 3, 'thirdparty', 0, 0, '', '', 1, '', '3', 0, '', '', 'datapolicy@datapolicy', '$conf->datapolicy->enabled');
|
||||
$result1 = $extrafields->addExtraField('datapolicy_consentement', $langs->trans("DATAPOLICY_consentement"), 'boolean', 101, 3, 'thirdparty', 0, 0, '', '', 1, '', '3', 0, '', '', 'datapolicy', '$conf->datapolicy->enabled');
|
||||
$result1 = $extrafields->addExtraField('datapolicy_opposition_traitement', $langs->trans("DATAPOLICY_opposition_traitement"), 'boolean', 102, 3, 'thirdparty', 0, 0, '', '', 1, '', '3', 0, '', '', 'datapolicy', '$conf->datapolicy->enabled');
|
||||
$result1 = $extrafields->addExtraField('datapolicy_opposition_prospection', $langs->trans("DATAPOLICY_opposition_prospection"), 'boolean', 103, 3, 'thirdparty', 0, 0, '', '', 1, '', '3', 0, '', '', 'datapolicy', '$conf->datapolicy->enabled');
|
||||
$result1 = $extrafields->addExtraField('datapolicy_date', $langs->trans("DATAPOLICY_date"), 'date', 104, 3, 'thirdparty', 0, 0, '', '', 1, '', '3', 0);
|
||||
$result1 = $extrafields->addExtraField('datapolicy_send', $langs->trans("DATAPOLICY_send"), 'date', 105, 3, 'thirdparty', 0, 0, '', '', 0, '', '0', 0);
|
||||
|
||||
// Extrafield Tiers
|
||||
$result1 = $extrafields->addExtraField('datapolicy_consentement', $langs->trans("DATAPOLICY_consentement"), 'boolean', 101, 3, 'contact', 0, 0, '', '', 1, '', '3', 0, '', '', 'datapolicy@datapolicy', '$conf->datapolicy->enabled');
|
||||
$result1 = $extrafields->addExtraField('datapolicy_opposition_traitement', $langs->trans("DATAPOLICY_opposition_traitement"), 'boolean', 102, 3, 'contact', 0, 0, '', '', 1, '', '3', 0, '', '', 'datapolicy@datapolicy', '$conf->datapolicy->enabled');
|
||||
$result1 = $extrafields->addExtraField('datapolicy_opposition_prospection', $langs->trans("DATAPOLICY_opposition_prospection"), 'boolean', 103, 3, 'contact', 0, 0, '', '', 1, '', '3', 0, '', '', 'datapolicy@datapolicy', '$conf->datapolicy->enabled');
|
||||
$result1 = $extrafields->addExtraField('datapolicy_consentement', $langs->trans("DATAPOLICY_consentement"), 'boolean', 101, 3, 'contact', 0, 0, '', '', 1, '', '3', 0, '', '', 'datapolicy', '$conf->datapolicy->enabled');
|
||||
$result1 = $extrafields->addExtraField('datapolicy_opposition_traitement', $langs->trans("DATAPOLICY_opposition_traitement"), 'boolean', 102, 3, 'contact', 0, 0, '', '', 1, '', '3', 0, '', '', 'datapolicy', '$conf->datapolicy->enabled');
|
||||
$result1 = $extrafields->addExtraField('datapolicy_opposition_prospection', $langs->trans("DATAPOLICY_opposition_prospection"), 'boolean', 103, 3, 'contact', 0, 0, '', '', 1, '', '3', 0, '', '', 'datapolicy', '$conf->datapolicy->enabled');
|
||||
$result1 = $extrafields->addExtraField('datapolicy_date', $langs->trans("DATAPOLICY_date"), 'date', 104, 3, 'contact', 0, 0, '', '', 1, '', '3', 0);
|
||||
$result1 = $extrafields->addExtraField('datapolicy_send', $langs->trans("DATAPOLICY_send"), 'date', 105, 3, 'contact', 0, 0, '', '', 0, '', '0', 0);
|
||||
|
||||
// Extrafield Adherent
|
||||
$result1 = $extrafields->addExtraField('datapolicy_consentement', $langs->trans("DATAPOLICY_consentement"), 'boolean', 101, 3, 'adherent', 0, 0, '', '', 1, '', '3', 0, '', '', 'datapolicy@datapolicy', '$conf->datapolicy->enabled');
|
||||
$result1 = $extrafields->addExtraField('datapolicy_opposition_traitement', $langs->trans("DATAPOLICY_opposition_traitement"), 'boolean', 102, 3, 'adherent', 0, 0, '', '', 1, '', '3', 0, '', '', 'datapolicy@datapolicy', '$conf->datapolicy->enabled');
|
||||
$result1 = $extrafields->addExtraField('datapolicy_opposition_prospection', $langs->trans("DATAPOLICY_opposition_prospection"), 'boolean', 103, 3, 'adherent', 0, 0, '', '', 1, '', '3', 0, '', '', 'datapolicy@datapolicy', '$conf->datapolicy->enabled');
|
||||
$result1 = $extrafields->addExtraField('datapolicy_consentement', $langs->trans("DATAPOLICY_consentement"), 'boolean', 101, 3, 'adherent', 0, 0, '', '', 1, '', '3', 0, '', '', 'datapolicy', '$conf->datapolicy->enabled');
|
||||
$result1 = $extrafields->addExtraField('datapolicy_opposition_traitement', $langs->trans("DATAPOLICY_opposition_traitement"), 'boolean', 102, 3, 'adherent', 0, 0, '', '', 1, '', '3', 0, '', '', 'datapolicy', '$conf->datapolicy->enabled');
|
||||
$result1 = $extrafields->addExtraField('datapolicy_opposition_prospection', $langs->trans("DATAPOLICY_opposition_prospection"), 'boolean', 103, 3, 'adherent', 0, 0, '', '', 1, '', '3', 0, '', '', 'datapolicy', '$conf->datapolicy->enabled');
|
||||
$result1 = $extrafields->addExtraField('datapolicy_date', $langs->trans("DATAPOLICY_date"), 'date', 104, 3, 'adherent', 0, 0, '', '', 1, '', '3', 0);
|
||||
$result1 = $extrafields->addExtraField('datapolicy_send', $langs->trans("DATAPOLICY_send"), 'date', 105, 3, 'adherent', 0, 0, '', '', 0, '', '0', 0);
|
||||
*/
|
||||
|
||||
@ -17,25 +17,56 @@
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file htdocs/datapolicy/mailing.php
|
||||
* \file htdocs/datapolicy/admin/mailing.php
|
||||
* \ingroup datapolicy
|
||||
* \brief datapolicy mailing page.
|
||||
* \brief Page called by the setupmail.php page to send agreements by email.
|
||||
*/
|
||||
|
||||
require '../../main.inc.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/datapolicy/class/datapolicy.class.php';
|
||||
|
||||
$idcontact = GETPOST('idc');
|
||||
$idcontact = GETPOST('idc', 'int');
|
||||
$idcompany = GETPOST('ids', 'int');
|
||||
$idmember = GETPOST('ida', 'int');
|
||||
|
||||
// Security
|
||||
if (!isModEnabled("datapolicy")) {
|
||||
accessforbidden();
|
||||
}
|
||||
if (!$user->admin) {
|
||||
accessforbidden();
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Actions
|
||||
*/
|
||||
|
||||
if (!empty($idcontact)) {
|
||||
$contact = new Contact($db);
|
||||
$contact->fetch($idcontact);
|
||||
DataPolicy::sendMailDataPolicyContact($contact);
|
||||
} elseif (!empty($idcompany)) {
|
||||
$company = new Societe($db);
|
||||
$company->fetch($idcompany);
|
||||
DataPolicy::sendMailDataPolicyCompany($company);
|
||||
} elseif (!empty($idmember)) {
|
||||
$member = new Adherent($db);
|
||||
$member->fetch($idmember);
|
||||
DataPolicy::sendMailDataPolicyAdherent($member);
|
||||
} else {
|
||||
$contacts = new DataPolicy($db);
|
||||
|
||||
// Send email to all contacts where email was not already sent
|
||||
$contacts->getAllContactNotInformed();
|
||||
$contacts->getAllCompaniesNotInformed();
|
||||
$contacts->getAllAdherentsNotInformed();
|
||||
echo $langs->trans('AllAgreementSend');
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* View
|
||||
*/
|
||||
|
||||
echo $langs->trans('AllAgreementSend');
|
||||
@ -19,15 +19,15 @@
|
||||
/**
|
||||
* \file htdocs/datapolicy/admin/setup.php
|
||||
* \ingroup datapolicy
|
||||
* \brief datapolicy setup page.
|
||||
* \brief Datapolicy setup page to define duration of data keeping.
|
||||
*/
|
||||
|
||||
require '../../main.inc.php';
|
||||
require_once DOL_DOCUMENT_ROOT."/core/lib/admin.lib.php";
|
||||
require_once '../lib/datapolicy.lib.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/datapolicy/lib/datapolicy.lib.php';
|
||||
|
||||
// Translations
|
||||
$langs->loadLangs(array('admin', 'companies', 'members', 'datapolicy@datapolicy'));
|
||||
$langs->loadLangs(array('admin', 'companies', 'members', 'datapolicy'));
|
||||
|
||||
// Parameters
|
||||
$action = GETPOST('action', 'aZ09');
|
||||
@ -69,7 +69,10 @@ $valTab = array(
|
||||
'240' => $langs->trans('NB_YEARS', 20),
|
||||
);
|
||||
|
||||
// Access control
|
||||
// Security
|
||||
if (!isModEnabled("datapolicy")) {
|
||||
accessforbidden();
|
||||
}
|
||||
if (!$user->admin) {
|
||||
accessforbidden();
|
||||
}
|
||||
@ -137,7 +140,7 @@ if ($action == 'edit') {
|
||||
foreach ($tab as $key => $val) {
|
||||
print '<tr class="oddeven"><td>';
|
||||
print $val['picto'];
|
||||
print $form->textwithpicto($langs->trans($key), $langs->trans($key.'Tooltip'));
|
||||
print $form->textwithpicto($langs->trans($key), $langs->trans('DATAPOLICY_Tooltip_SETUP'));
|
||||
print '</td><td>';
|
||||
print '<select name="'.$key.'" class="flat '.(empty($val['css']) ? 'minwidth200' : $val['css']).'">';
|
||||
foreach ($valTab as $key1 => $val1) {
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
/* Copyright (C) 2004-2017 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
/* Copyright (C) 2004-2022 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
* Copyright (C) 2018 Nicolas ZABOURI <info@inovea-conseil.com>
|
||||
* Copyright (C) 2018 Frédéric France <frederic.france@netlogic.fr>
|
||||
*
|
||||
@ -18,11 +18,17 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file htdocs/datapolicy/admin/setupmail.php
|
||||
* \ingroup datapolicy
|
||||
* \brief Datapolicy setup page to define email content end send email for end user agreement.
|
||||
*/
|
||||
|
||||
require '../../main.inc.php';
|
||||
require_once DOL_DOCUMENT_ROOT."/core/lib/admin.lib.php";
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php';
|
||||
require_once '../lib/datapolicy.lib.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/datapolicy/lib/datapolicy.lib.php';
|
||||
|
||||
// Translations
|
||||
$langs->loadLangs(array('admin', 'companies', 'members', 'datapolicy'));
|
||||
@ -31,18 +37,22 @@ $langs->loadLangs(array('admin', 'companies', 'members', 'datapolicy'));
|
||||
// Parameters
|
||||
$action = GETPOST('action', 'aZ09');
|
||||
$backtopage = GETPOST('backtopage', 'alpha');
|
||||
$formadmin = new FormAdmin($db);
|
||||
|
||||
if (GETPOST('l')) {
|
||||
$l = GETPOST('l');
|
||||
} else {
|
||||
$l = $langs->defaultlang;
|
||||
}
|
||||
// Access control
|
||||
|
||||
// Security
|
||||
if (!isModEnabled("datapolicy")) {
|
||||
accessforbidden();
|
||||
}
|
||||
if (!$user->admin) {
|
||||
accessforbidden();
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Actions
|
||||
*/
|
||||
@ -51,17 +61,17 @@ include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php';
|
||||
|
||||
if ($action == 'setvalue' && $user->admin) {
|
||||
$db->begin();
|
||||
$sub = "DATAPOLICIESSUBJECT_".$l;
|
||||
$sub = "DATAPOLICYSUBJECT_".$l;
|
||||
$result = dolibarr_set_const($db, $sub, GETPOST($sub), 'chaine', 0, '', $conf->entity);
|
||||
$cont = "DATAPOLICIESCONTENT_".$l;
|
||||
$cont = "DATAPOLICYCONTENT_".$l;
|
||||
$result = dolibarr_set_const($db, $cont, GETPOST($cont), 'chaine', 0, '', $conf->entity);
|
||||
$cont = "TXTLINKDATAPOLICIESACCEPT_".$l;
|
||||
$cont = "TXTLINKDATAPOLICYACCEPT_".$l;
|
||||
$result = dolibarr_set_const($db, $cont, GETPOST($cont), 'chaine', 0, '', $conf->entity);
|
||||
$cont = "TXTLINKDATAPOLICIESREFUSE_".$l;
|
||||
$cont = "TXTLINKDATAPOLICYREFUSE_".$l;
|
||||
$result = dolibarr_set_const($db, $cont, GETPOST($cont), 'chaine', 0, '', $conf->entity);
|
||||
$sub = "DATAPOLICIESACCEPT_".$l;
|
||||
$sub = "DATAPOLICYACCEPT_".$l;
|
||||
$result = dolibarr_set_const($db, $sub, GETPOST($sub), 'chaine', 0, '', $conf->entity);
|
||||
$sub = "DATAPOLICIESREFUSE_".$l;
|
||||
$sub = "DATAPOLICYREFUSE_".$l;
|
||||
$result = dolibarr_set_const($db, $sub, GETPOST($sub), 'chaine', 0, '', $conf->entity);
|
||||
if (!($result > 0)) {
|
||||
$error++;
|
||||
@ -80,17 +90,19 @@ if ($action == 'setvalue' && $user->admin) {
|
||||
* View
|
||||
*/
|
||||
|
||||
$formadmin = new FormAdmin($db);
|
||||
|
||||
$page_name = "datapolicySetup";
|
||||
llxHeader('', $langs->trans($page_name));
|
||||
|
||||
// Subheader
|
||||
$linkback = '<a href="'.($backtopage ? $backtopage : DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1').'">'.$langs->trans("BackToModuleList").'</a>';
|
||||
|
||||
print load_fiche_titre($langs->trans($page_name), $linkback, 'object_datapolicy@datapolicy');
|
||||
print load_fiche_titre($langs->trans($page_name), $linkback, 'generic');
|
||||
|
||||
// Configuration header
|
||||
$head = datapolicyAdminPrepareHead();
|
||||
print dol_get_fiche_head($head, 'settings', '', -1, "datapolicy@datapolicy");
|
||||
print dol_get_fiche_head($head, 'emailing', '', -1, '');
|
||||
|
||||
|
||||
print "<script type='text/javascript'>
|
||||
@ -108,42 +120,46 @@ print '<input type="hidden" name="action" value="setvalue">';
|
||||
print '<table>';
|
||||
if (!empty($conf->global->MAIN_MULTILANGS)) {
|
||||
print '<tr><td>'.$form->editfieldkey('DefaultLang', 'default_lang', '', null, 0).'</td><td colspan="3" class="maxwidthonsmartphone">'."\n";
|
||||
print img_picto('', 'language', 'class="pictofixedwidth"');
|
||||
print $formadmin->select_language((GETPOST('l') ? GETPOST('l') : $langs->defaultlang), 'default_lang', 0, 0, 1, 0, 0, 'maxwidth200onsmartphone');
|
||||
print '</tr>';
|
||||
}
|
||||
$subject = 'DATAPOLICIESSUBJECT_'.$l;
|
||||
$linka = 'TXTLINKDATAPOLICIESACCEPT_'.$l;
|
||||
$linkr = 'TXTLINKDATAPOLICIESREFUSE_'.$l;
|
||||
$content = 'DATAPOLICIESCONTENT_'.$l;
|
||||
$acc = 'DATAPOLICIESACCEPT_'.$l;
|
||||
$ref = 'DATAPOLICIESREFUSE_'.$l;
|
||||
$subject = 'DATAPOLICYSUBJECT_'.$l;
|
||||
$linka = 'TXTLINKDATAPOLICYACCEPT_'.$l;
|
||||
$linkr = 'TXTLINKDATAPOLICYREFUSE_'.$l;
|
||||
$content = 'DATAPOLICYCONTENT_'.$l;
|
||||
$acc = 'DATAPOLICYACCEPT_'.$l;
|
||||
$ref = 'DATAPOLICYREFUSE_'.$l;
|
||||
print '<tr class"oddeven"><td class="fieldrequired">';
|
||||
print $langs->trans('DATAPOLICIESSUBJECTMAIL').'</td><td>';
|
||||
print '<input type="text" size="100" name="'.$subject.'" value="'.$conf->global->$subject.'" />';
|
||||
print $langs->trans('DATAPOLICYSUBJECTMAIL').'</td><td>';
|
||||
print '<input type="text" name="'.$subject.'" value="'.$conf->global->$subject.'" />';
|
||||
print '</td><tr>';
|
||||
print '<tr class"oddeven"><td class="fieldrequired">';
|
||||
print $langs->trans('DATAPOLICIESCONTENTMAIL').'</td><td>';
|
||||
print $langs->trans('DATAPOLICIESSUBSITUTION'); echo'__LINKACCEPT__,__LINKREFUSED__,__FIRSTNAME__,__NAME__,__CIVILITY__';
|
||||
print $langs->trans('DATAPOLICYCONTENTMAIL').'</td><td>';
|
||||
print '<span class="opacitymedium">';
|
||||
print $langs->trans('DATAPOLICYSUBSITUTION');
|
||||
print '__LINKACCEPT__,__LINKREFUSED__,__FIRSTNAME__,__NAME__,__CIVILITY__';
|
||||
print '</span>';
|
||||
$doleditor = new DolEditor($content, $conf->global->$content, '', 250, 'Full', '', false, true, 1, 200, 70);
|
||||
$doleditor->Create();
|
||||
print '</td><tr>';
|
||||
print '<tr class"oddeven"><td class="fieldrequired">';
|
||||
print $langs->trans('TXTLINKDATAPOLICIESACCEPT').'</td><td>';
|
||||
print '<input type="text" size="200" name="'.$linka.'" value="'.$conf->global->$linka.'" />';
|
||||
print $langs->trans('TXTLINKDATAPOLICYACCEPT').'</td><td>';
|
||||
print '<input type="text" name="'.$linka.'" value="'.$conf->global->$linka.'" />';
|
||||
print '</td><tr>';
|
||||
print '<tr class"oddeven"><td class="fieldrequired">';
|
||||
print $langs->trans('TXTLINKDATAPOLICIESREFUSE').'</td><td>';
|
||||
print '<input type="text" size="200" name="'.$linkr.'" value="'.$conf->global->$linkr.'" />';
|
||||
print $langs->trans('TXTLINKDATAPOLICYREFUSE').'</td><td>';
|
||||
print '<input type="text" name="'.$linkr.'" value="'.$conf->global->$linkr.'" />';
|
||||
print '</td><tr>';
|
||||
print '<tr class"oddeven"><td class="fieldrequired">';
|
||||
|
||||
print $langs->trans('DATAPOLICIESACCEPT').'</td><td>';
|
||||
print $langs->trans('DATAPOLICYACCEPT').'</td><td>';
|
||||
|
||||
$doleditor = new DolEditor($acc, $conf->global->$acc, '', 250, 'Full', '', false, true, 1, 200, 70);
|
||||
$doleditor->Create();
|
||||
print '</td><tr>';
|
||||
print '<tr class"oddeven"><td class="fieldrequired">';
|
||||
print $langs->trans('DATAPOLICIESREFUSE').'</td><td>';
|
||||
print $langs->trans('DATAPOLICYREFUSE').'</td><td>';
|
||||
|
||||
print $langs->trans('');
|
||||
$doleditor = new DolEditor($ref, $conf->global->$ref, '', 250, 'Full', '', false, true, 1, 200, 70);
|
||||
@ -160,7 +176,7 @@ print dol_get_fiche_end();
|
||||
print '<br><br>';
|
||||
|
||||
print $langs->trans('SendAgreementText');
|
||||
print '<a class="button" href="'.DOL_URL_ROOT.'/datapolicy/mailing.php">'.$langs->trans('SendAgreement').'</a>';
|
||||
print '<a class="button" href="'.DOL_URL_ROOT.'/datapolicy/admin/mailing.php">'.$langs->trans('SendAgreementRequestByEmail').'</a>';
|
||||
|
||||
llxFooter();
|
||||
$db->close();
|
||||
|
||||
@ -331,9 +331,9 @@ class ActionsDatapolicy
|
||||
global $conf, $user, $langs;
|
||||
$langs->load('datapolicy@datapolicy');
|
||||
|
||||
if (!empty($conf->global->DATAPOLICIES_ENABLE_EMAILS)) {
|
||||
$dialog = '<div id="dialogdatapolicy" style="display:none;" title="'.$langs->trans('DATAPOLICIES_PORTABILITE_TITLE').'">';
|
||||
$dialog .= '<div class="confirmmessage">'.img_help('', '').' '.$langs->trans('DATAPOLICIES_PORTABILITE_CONFIRMATION').'</div>';
|
||||
if (!empty($conf->global->DATAPOLICY_ENABLE_EMAILS)) {
|
||||
$dialog = '<div id="dialogdatapolicy" style="display:none;" title="'.$langs->trans('DATAPOLICY_PORTABILITE_TITLE').'">';
|
||||
$dialog .= '<div class="confirmmessage">'.img_help('', '').' '.$langs->trans('DATAPOLICY_PORTABILITE_CONFIRMATION').'</div>';
|
||||
$dialog .= "</div>";
|
||||
$dialog .= '<script>
|
||||
$( function() {
|
||||
@ -359,18 +359,18 @@ class ActionsDatapolicy
|
||||
</script>';
|
||||
echo $dialog;
|
||||
if ($parameters['currentcontext'] == 'thirdpartycard' && in_array($object->forme_juridique_code, array(11, 12, 13, 15, 17, 18, 19, 35, 60, 200, 311, 312, 316, 401, 600, 700, 1005)) || $object->typent_id == 8) {
|
||||
echo '<div class="inline-block divButAction"><a target="_blank" rel="noopener noreferrer" id="rpgpdbtn" class="butAction" href="'.$_SERVER["PHP_SELF"]."?socid=".$object->id.'&action=datapolicy_portabilite" title="'.$langs->trans('DATAPOLICIES_PORTABILITE_TITLE').'">'.$langs->trans("DATAPOLICIES_PORTABILITE").'</a></div>';
|
||||
echo '<div class="inline-block divButAction"><a target="_blank" rel="noopener noreferrer" id="rpgpdbtn" class="butAction" href="'.$_SERVER["PHP_SELF"]."?socid=".$object->id.'&action=datapolicy_portabilite" title="'.$langs->trans('DATAPOLICY_PORTABILITE_TITLE').'">'.$langs->trans("DATAPOLICY_PORTABILITE").'</a></div>';
|
||||
} elseif ($parameters['currentcontext'] == 'membercard') {
|
||||
echo '<div class="inline-block divButAction"><a target="_blank" rel="noopener noreferrer" id="rpgpdbtn" class="butAction" href="'.$_SERVER["PHP_SELF"]."?rowid=".$object->id.'&action=datapolicy_portabilite" title="'.$langs->trans('DATAPOLICIES_PORTABILITE_TITLE').'">'.$langs->trans("DATAPOLICIES_PORTABILITE").'</a></div>';
|
||||
echo '<div class="inline-block divButAction"><a target="_blank" rel="noopener noreferrer" id="rpgpdbtn" class="butAction" href="'.$_SERVER["PHP_SELF"]."?rowid=".$object->id.'&action=datapolicy_portabilite" title="'.$langs->trans('DATAPOLICY_PORTABILITE_TITLE').'">'.$langs->trans("DATAPOLICY_PORTABILITE").'</a></div>';
|
||||
} elseif ($parameters['currentcontext'] == 'contactcard') {
|
||||
echo '<div class="inline-block divButAction"><a target="_blank" rel="noopener noreferrer" id="rpgpdbtn" class="butAction" href="'.$_SERVER["PHP_SELF"]."?id=".$object->id.'&action=datapolicy_portabilite" title="'.$langs->trans('DATAPOLICIES_PORTABILITE_TITLE').'">'.$langs->trans("DATAPOLICIES_PORTABILITE").'</a></div>';
|
||||
echo '<div class="inline-block divButAction"><a target="_blank" rel="noopener noreferrer" id="rpgpdbtn" class="butAction" href="'.$_SERVER["PHP_SELF"]."?id=".$object->id.'&action=datapolicy_portabilite" title="'.$langs->trans('DATAPOLICY_PORTABILITE_TITLE').'">'.$langs->trans("DATAPOLICY_PORTABILITE").'</a></div>';
|
||||
}
|
||||
if (!empty($object->mail) && empty($object->array_options['options_datapolicy_send']) && $parameters['currentcontext'] == 'thirdpartycard' && in_array($object->forme_juridique_code, array(11, 12, 13, 15, 17, 18, 19, 35, 60, 200, 311, 312, 316, 401, 600, 700, 1005)) || $object->typent_id == 8) {
|
||||
echo '<div class="inline-block divButAction"><a class="butAction" href="'.$_SERVER["PHP_SELF"]."?socid=".$object->id.'&action=send_datapolicy" title="'.$langs->trans('DATAPOLICIES_SEND').'">'.$langs->trans("DATAPOLICIES_SEND").'</a></div>';
|
||||
echo '<div class="inline-block divButAction"><a class="butAction" href="'.$_SERVER["PHP_SELF"]."?socid=".$object->id.'&action=send_datapolicy" title="'.$langs->trans('DATAPOLICY_SEND').'">'.$langs->trans("DATAPOLICY_SEND").'</a></div>';
|
||||
} elseif (!empty($object->mail) && empty($object->array_options['options_datapolicy_send']) && $parameters['currentcontext'] == 'membercard') {
|
||||
echo '<div class="inline-block divButAction"><a class="butAction" href="'.$_SERVER["PHP_SELF"]."?rowid=".$object->id.'&action=send_datapolicy" title="'.$langs->trans('DATAPOLICIES_SEND').'">'.$langs->trans("DATAPOLICIES_SEND").'</a></div>';
|
||||
echo '<div class="inline-block divButAction"><a class="butAction" href="'.$_SERVER["PHP_SELF"]."?rowid=".$object->id.'&action=send_datapolicy" title="'.$langs->trans('DATAPOLICY_SEND').'">'.$langs->trans("DATAPOLICY_SEND").'</a></div>';
|
||||
} elseif (!empty($object->mail) && empty($object->array_options['options_datapolicy_send']) && $parameters['currentcontext'] == 'contactcard') {
|
||||
echo '<div class="inline-block divButAction"><a class="butAction" href="'.$_SERVER["PHP_SELF"]."?id=".$object->id.'&action=send_datapolicy" title="'.$langs->trans('DATAPOLICIES_SEND').'">'.$langs->trans("DATAPOLICIES_SEND").'</a></div>';
|
||||
echo '<div class="inline-block divButAction"><a class="butAction" href="'.$_SERVER["PHP_SELF"]."?id=".$object->id.'&action=send_datapolicy" title="'.$langs->trans('DATAPOLICY_SEND').'">'.$langs->trans("DATAPOLICY_SEND").'</a></div>';
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -412,7 +412,7 @@ class ActionsDatapolicy
|
||||
if ((in_array($object->forme_juridique_code, array(11, 12, 13, 15, 17, 18, 19, 35, 60, 200, 311, 312, 316, 401, 600, 700, 1005)) || $societe->typent_id == 8) && $societe->isObjectUsed(GETPOST('socid'))) {
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/class/html.form.class.php';
|
||||
$form = new Form($this->db);
|
||||
echo $form->formconfirm($_SERVER["PHP_SELF"]."?socid=".GETPOST('socid'), substr($langs->trans("DATAPOLICIES_POPUP_ANONYME_TITLE"), 0, strlen($langs->trans("DATAPOLICIES_POPUP_ANONYME_TITLE")) - 2), $langs->trans("DATAPOLICIES_POPUP_ANONYME_TEXTE"), 'anonymiser', '', '', 1);
|
||||
echo $form->formconfirm($_SERVER["PHP_SELF"]."?socid=".GETPOST('socid'), substr($langs->trans("DATAPOLICY_POPUP_ANONYME_TITLE"), 0, strlen($langs->trans("DATAPOLICY_POPUP_ANONYME_TITLE")) - 2), $langs->trans("DATAPOLICY_POPUP_ANONYME_TEXTE"), 'anonymiser', '', '', 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -23,6 +23,7 @@
|
||||
include_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php';
|
||||
include_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php';
|
||||
include_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php';
|
||||
include_once DOL_DOCUMENT_ROOT.'/core/lib/security.lib.php';
|
||||
|
||||
|
||||
/**
|
||||
@ -161,17 +162,17 @@ class DataPolicy
|
||||
$from = $user->getFullName($langs).' <'.$user->email.'>';
|
||||
|
||||
$sendto = $contact->email;
|
||||
$code = md5($contact->email);
|
||||
$code = dol_hash($contact->email, 'md5');
|
||||
if (!empty($contact->default_lang)) {
|
||||
$l = $contact->default_lang;
|
||||
} else {
|
||||
$l = $langs->defaultlang;
|
||||
}
|
||||
// TODO Use a dolibarr email template
|
||||
$s = "DATAPOLICIESSUBJECT_".$l;
|
||||
$ma = "DATAPOLICIESCONTENT_".$l;
|
||||
$la = 'TXTLINKDATAPOLICIESACCEPT_'.$l;
|
||||
$lr = 'TXTLINKDATAPOLICIESREFUSE_'.$l;
|
||||
$s = "DATAPOLICYSUBJECT_".$l;
|
||||
$ma = "DATAPOLICYCONTENT_".$l;
|
||||
$la = 'TXTLINKDATAPOLICYACCEPT_'.$l;
|
||||
$lr = 'TXTLINKDATAPOLICYREFUSE_'.$l;
|
||||
|
||||
$subject = $conf->global->$s;
|
||||
$message = $conf->global->$ma;
|
||||
@ -182,8 +183,8 @@ class DataPolicy
|
||||
$deliveryreceipt = 0;
|
||||
|
||||
$substitutionarray = array(
|
||||
'__LINKACCEPT__' => '<a href="'.dol_buildpath('/datapolicy/public/index.php?action=1&c='.$contact->id.'&l='.$l.'&key='.$code, 3).'" target="_blank" rel="noopener noreferrer">'.$linka.'</a>',
|
||||
'__LINKREFUSED__' => '<a href="'.dol_buildpath('/datapolicy/public/index.php?action=2&c='.$contact->id.'&l='.$l.'&key='.$code, 3).'" target="_blank" rel="noopener noreferrer">'.$linkr.'</a>',
|
||||
'__LINKACCEPT__' => '<a href="'.dol_buildpath('/public/datapolicy/index.php?action=1&c='.$contact->id.'&l='.$l.'&key='.$code, 3).'" target="_blank" rel="noopener noreferrer">'.$linka.'</a>',
|
||||
'__LINKREFUSED__' => '<a href="'.dol_buildpath('/public/datapolicy/index.php?action=2&c='.$contact->id.'&l='.$l.'&key='.$code, 3).'" target="_blank" rel="noopener noreferrer">'.$linkr.'</a>',
|
||||
'__FIRSTNAME__' => $contact->firstname,
|
||||
'__NAME__' => $contact->lastname,
|
||||
'__CIVILITY__' => $contact->civility,
|
||||
@ -238,17 +239,17 @@ class DataPolicy
|
||||
|
||||
$sendto = $societe->email;
|
||||
|
||||
$code = md5($societe->email);
|
||||
$code = dol_hash($societe->email, 'md5');
|
||||
if (!empty($societe->default_lang)) {
|
||||
$l = $societe->default_lang;
|
||||
} else {
|
||||
$l = $langs->defaultlang;
|
||||
}
|
||||
// TODO Use a dolibarr email template
|
||||
$s = "DATAPOLICIESSUBJECT_".$l;
|
||||
$ma = "DATAPOLICIESCONTENT_".$l;
|
||||
$la = 'TXTLINKDATAPOLICIESACCEPT_'.$l;
|
||||
$lr = 'TXTLINKDATAPOLICIESREFUSE_'.$l;
|
||||
$s = "DATAPOLICYSUBJECT_".$l;
|
||||
$ma = "DATAPOLICYCONTENT_".$l;
|
||||
$la = 'TXTLINKDATAPOLICYACCEPT_'.$l;
|
||||
$lr = 'TXTLINKDATAPOLICYREFUSE_'.$l;
|
||||
|
||||
$subject = $conf->global->$s;
|
||||
$message = $conf->global->$ma;
|
||||
@ -259,8 +260,8 @@ class DataPolicy
|
||||
$deliveryreceipt = 0;
|
||||
|
||||
$substitutionarray = array(
|
||||
'__LINKACCEPT__' => '<a href="'.dol_buildpath('/datapolicy/public/index.php?action=1&s='.$societe->id.'&l='.$l.'&key='.$code, 3).'" target="_blank" rel="noopener noreferrer">'.$linka.'</a>',
|
||||
'__LINKREFUSED__' => '<a href="'.dol_buildpath('/datapolicy/public/index.php?action=2&s='.$societe->id.'&l='.$l.'&key='.$code, 3).'" target="_blank" rel="noopener noreferrer">'.$linkr.'</a>',
|
||||
'__LINKACCEPT__' => '<a href="'.dol_buildpath('/public/datapolicy/index.php?action=1&s='.$societe->id.'&l='.$l.'&key='.$code, 3).'" target="_blank" rel="noopener noreferrer">'.$linka.'</a>',
|
||||
'__LINKREFUSED__' => '<a href="'.dol_buildpath('/public/datapolicy/index.php?action=2&s='.$societe->id.'&l='.$l.'&key='.$code, 3).'" target="_blank" rel="noopener noreferrer">'.$linkr.'</a>',
|
||||
);
|
||||
$subject = make_substitutions($subject, $substitutionarray);
|
||||
$message = make_substitutions($message, $substitutionarray);
|
||||
@ -311,17 +312,17 @@ class DataPolicy
|
||||
|
||||
$sendto = $adherent->email;
|
||||
|
||||
$code = md5($adherent->email);
|
||||
$code = dol_hash($adherent->email, 'md5');
|
||||
if (!empty($adherent->default_lang)) {
|
||||
$l = $adherent->default_lang;
|
||||
} else {
|
||||
$l = $langs->defaultlang;
|
||||
}
|
||||
// TODO Use a dolibarr email template
|
||||
$s = 'TXTLINKDATAPOLICIESSUBJECT_'.$l;
|
||||
$ma = 'TXTLINKDATAPOLICIESMESSAGE_'.$l;
|
||||
$la = 'TXTLINKDATAPOLICIESACCEPT_'.$l;
|
||||
$lr = 'TXTLINKDATAPOLICIESREFUSE_'.$l;
|
||||
$s = 'TXTLINKDATAPOLICYSUBJECT_'.$l;
|
||||
$ma = 'TXTLINKDATAPOLICYMESSAGE_'.$l;
|
||||
$la = 'TXTLINKDATAPOLICYACCEPT_'.$l;
|
||||
$lr = 'TXTLINKDATAPOLICYREFUSE_'.$l;
|
||||
|
||||
$subject = $conf->global->$s;
|
||||
$message = $conf->global->$ma;
|
||||
@ -332,8 +333,8 @@ class DataPolicy
|
||||
$deliveryreceipt = 0;
|
||||
|
||||
$substitutionarray = array(
|
||||
'__LINKACCEPT__' => '<a href="'.dol_buildpath('/datapolicy/public/index.php?action=1&a='.$adherent->id.'&l='.$l.'&key='.$code, 3).'" target="_blank" rel="noopener noreferrer">'.$linka.'</a>',
|
||||
'__LINKREFUSED__' => '<a href="'.dol_buildpath('/datapolicy/public/index.php?action=2&a='.$adherent->id.'&l='.$l.'&key='.$code, 3).'" target="_blank" rel="noopener noreferrer">'.$linkr.'</a>',
|
||||
'__LINKACCEPT__' => '<a href="'.dol_buildpath('/public/datapolicy/index.php?action=1&a='.$adherent->id.'&l='.$l.'&key='.$code, 3).'" target="_blank" rel="noopener noreferrer">'.$linka.'</a>',
|
||||
'__LINKREFUSED__' => '<a href="'.dol_buildpath('/public/datapolicy/index.php?action=2&a='.$adherent->id.'&l='.$l.'&key='.$code, 3).'" target="_blank" rel="noopener noreferrer">'.$linkr.'</a>',
|
||||
);
|
||||
$subject = make_substitutions($subject, $substitutionarray);
|
||||
$message = make_substitutions($message, $substitutionarray);
|
||||
|
||||
@ -56,7 +56,7 @@ class DataPolicyCron
|
||||
|
||||
// FIXME Exclude data from the selection if there is at least 1 invoice.
|
||||
$arrayofparameters = array(
|
||||
'DATAPOLICIES_TIERS_CLIENT' => array(
|
||||
'DATAPOLICY_TIERS_CLIENT' => array(
|
||||
'sql' => "
|
||||
SELECT s.rowid FROM ".MAIN_DB_PREFIX."societe as s
|
||||
WHERE s.entity = %d
|
||||
@ -90,7 +90,7 @@ class DataPolicyCron
|
||||
'country_id' => '',
|
||||
)
|
||||
),
|
||||
'DATAPOLICIES_TIERS_PROSPECT' => array(
|
||||
'DATAPOLICY_TIERS_PROSPECT' => array(
|
||||
'sql' => "
|
||||
SELECT s.rowid FROM ".MAIN_DB_PREFIX."societe as s
|
||||
WHERE s.entity = %d
|
||||
@ -124,7 +124,7 @@ class DataPolicyCron
|
||||
'country_id' => '',
|
||||
)
|
||||
),
|
||||
'DATAPOLICIES_TIERS_PROSPECT_CLIENT' => array(
|
||||
'DATAPOLICY_TIERS_PROSPECT_CLIENT' => array(
|
||||
'sql' => "
|
||||
SELECT s.rowid FROM ".MAIN_DB_PREFIX."societe as s
|
||||
WHERE s.entity = %d
|
||||
@ -158,7 +158,7 @@ class DataPolicyCron
|
||||
'country_id' => '',
|
||||
)
|
||||
),
|
||||
'DATAPOLICIES_TIERS_NIPROSPECT_NICLIENT' => array(
|
||||
'DATAPOLICY_TIERS_NIPROSPECT_NICLIENT' => array(
|
||||
'sql' => "
|
||||
SELECT s.rowid FROM ".MAIN_DB_PREFIX."societe as s
|
||||
WHERE s.entity = %d
|
||||
@ -192,7 +192,7 @@ class DataPolicyCron
|
||||
'country_id' => '',
|
||||
)
|
||||
),
|
||||
'DATAPOLICIES_TIERS_FOURNISSEUR' => array(
|
||||
'DATAPOLICY_TIERS_FOURNISSEUR' => array(
|
||||
'sql' => "
|
||||
SELECT s.rowid FROM ".MAIN_DB_PREFIX."societe as s
|
||||
WHERE s.entity = %d
|
||||
@ -225,7 +225,7 @@ class DataPolicyCron
|
||||
'country_id' => '',
|
||||
)
|
||||
),
|
||||
'DATAPOLICIES_CONTACT_CLIENT' => array(
|
||||
'DATAPOLICY_CONTACT_CLIENT' => array(
|
||||
'sql' => "
|
||||
SELECT c.rowid FROM ".MAIN_DB_PREFIX."socpeople as c
|
||||
INNER JOIN ".MAIN_DB_PREFIX."societe as s ON s.rowid = c.fk_soc
|
||||
@ -263,7 +263,7 @@ class DataPolicyCron
|
||||
'country_id' => '',
|
||||
)
|
||||
),
|
||||
'DATAPOLICIES_CONTACT_PROSPECT' => array(
|
||||
'DATAPOLICY_CONTACT_PROSPECT' => array(
|
||||
'sql' => "
|
||||
SELECT c.rowid FROM ".MAIN_DB_PREFIX."socpeople as c
|
||||
INNER JOIN ".MAIN_DB_PREFIX."societe as s ON s.rowid = c.fk_soc
|
||||
@ -301,7 +301,7 @@ class DataPolicyCron
|
||||
'country_id' => '',
|
||||
)
|
||||
),
|
||||
'DATAPOLICIES_CONTACT_PROSPECT_CLIENT' => array(
|
||||
'DATAPOLICY_CONTACT_PROSPECT_CLIENT' => array(
|
||||
'sql' => "
|
||||
SELECT c.rowid FROM ".MAIN_DB_PREFIX."socpeople as c
|
||||
INNER JOIN ".MAIN_DB_PREFIX."societe as s ON s.rowid = c.fk_soc
|
||||
@ -339,7 +339,7 @@ class DataPolicyCron
|
||||
'country_id' => '',
|
||||
)
|
||||
),
|
||||
'DATAPOLICIES_CONTACT_NIPROSPECT_NICLIENT' => array(
|
||||
'DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT' => array(
|
||||
'sql' => "
|
||||
SELECT c.rowid FROM ".MAIN_DB_PREFIX."socpeople as c
|
||||
INNER JOIN ".MAIN_DB_PREFIX."societe as s ON s.rowid = c.fk_soc
|
||||
@ -377,7 +377,7 @@ class DataPolicyCron
|
||||
'country_id' => '',
|
||||
)
|
||||
),
|
||||
'DATAPOLICIES_CONTACT_FOURNISSEUR' => array(
|
||||
'DATAPOLICY_CONTACT_FOURNISSEUR' => array(
|
||||
'sql' => "
|
||||
SELECT c.rowid FROM ".MAIN_DB_PREFIX."socpeople as c
|
||||
INNER JOIN ".MAIN_DB_PREFIX."societe as s ON s.rowid = c.fk_soc
|
||||
@ -414,7 +414,7 @@ class DataPolicyCron
|
||||
'country_id' => '',
|
||||
)
|
||||
),
|
||||
'DATAPOLICIES_ADHERENT' => array(
|
||||
'DATAPOLICY_ADHERENT' => array(
|
||||
'sql' => "
|
||||
SELECT a.rowid FROM ".MAIN_DB_PREFIX."adherent as a
|
||||
WHERE a.entity = %d
|
||||
|
||||
@ -1,97 +0,0 @@
|
||||
# Copyright (C) 2018 INOVEA CONSEil info@inovea-conseil.com
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
#
|
||||
# Générique
|
||||
#
|
||||
|
||||
# Module label 'ModuledatapolicyName'
|
||||
Module4100Name = Protection des Données
|
||||
# Module description 'ModuledatapolicyDesc'
|
||||
Module4100Desc = Module de gestion de la protection des données (RGPD)
|
||||
|
||||
#
|
||||
# Page d'administration
|
||||
#
|
||||
datapolicySetup = Configuration du module Protection des données
|
||||
Settings_DATAPOLICY = Paramétrage du module Protection des données
|
||||
datapolicySetupPage = Selon la loi de votre pays (Exemple <a href="http://www.privacy-regulation.eu/fr/5.htm" target="_blank" rel="noopener noreferrer">l’article 5</a> du RGPD), les données à caractère personnel doivent être conservées pendant une durée n’excédant pas celle nécessaire au regard des finalités pour lesquelles elles ont été traitées, à l’exception de fins archivistiques. La suppression se fera automatiquement après une certaine durée sans évènement (la durée que vous aurez indiquée ci-dessous).
|
||||
NB_MONTHS = %s mois
|
||||
ONE_YEAR = 1 an
|
||||
NB_YEARS = %s ans
|
||||
DATAPOLICY_TIERS_CLIENT = Client
|
||||
DATAPOLICY_TIERS_PROSPECT = Prospect
|
||||
DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Client
|
||||
DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Ni prospect / Ni client
|
||||
DATAPOLICY_TIERS_FOURNISSEUR = Fournisseur
|
||||
DATAPOLICY_CONTACT_CLIENT = Client
|
||||
DATAPOLICY_CONTACT_PROSPECT = Prospect
|
||||
DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Client
|
||||
DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Ni prospect / Ni client
|
||||
DATAPOLICY_CONTACT_FOURNISSEUR = Fournisseur
|
||||
DATAPOLICY_ADHERENT = Adhérent
|
||||
DATAPOLICY_Tooltip_SETUP = Type du contact - Indiquez vos choix pour chaque type.
|
||||
DATAPOLICYMail=Paramétrage des emails
|
||||
DATAPOLICYSUBJECTMAIL=Objet du mail
|
||||
DATAPOLICYCONTENTMAIL=Contenu du mail
|
||||
DATAPOLICYSUBSITUTION=Vous pouvez utiliser les variables suivantes dans votre email (LINKACCEPT permet de créer un lien enregistrant l'acceptation de la personne, LINKREFUSED permet d'enregistrer le refus de la personne) :
|
||||
DATAPOLICYACCEPT=Message suite acceptation
|
||||
DATAPOLICYREFUSE=Message suite opposition
|
||||
SendAgreementText=Vous pouvez envoyer un email DATAPOLICY à tous vos contacts concernés (qui n'ont pas encore reçus de mail et pour lesquels vous n'avez rien enregistré concernant leur accord/désaccord DATAPOLICY). Pour cela, utilisez le bouton suivant.
|
||||
SendAgreement=Envoyer les emails
|
||||
AllAgreementSend = Tous les e-mails de consentement ont été envoyés
|
||||
TXTLINKDATAPOLICYACCEPT= Texte du lien d'acceptation
|
||||
TXTLINKDATAPOLICYREFUSE= Texte du lien d'opposition
|
||||
|
||||
|
||||
|
||||
#
|
||||
# Extrafield
|
||||
#
|
||||
DATAPOLICY_BLOCKCHECKBOX = DATAPOLICY : Traitement des données à caractère personnel
|
||||
DATAPOLICY_consentement = Consentement recueilli pour le traitement des données à caractère personnel le concernant
|
||||
DATAPOLICY_opposition_traitement = S’oppose au traitement de ses données à caractère personnel
|
||||
DATAPOLICY_opposition_prospection = S’oppose au traitement de ses données à caractère personnel à des fins de prospection
|
||||
|
||||
#
|
||||
# Popup
|
||||
#
|
||||
DATAPOLICY_POPUP_ANONYME_TITLE = Anonymiser un tiers
|
||||
DATAPOLICY_POPUP_ANONYME_TEXTE = Vous ne pouvez pas supprimer ce contact de Dolibarr car des éléments y sont liés. Conformément au DATAPOLICY, vous allez rendre toutes ces données anonymes afin de respecter vos obligations. Souhaitez-vous continuer ?
|
||||
|
||||
#
|
||||
# Bouton portabilité
|
||||
#
|
||||
DATAPOLICY_PORTABILITE = Portabilité DATAPOLICY
|
||||
DATAPOLICY_PORTABILITE_TITLE = Export des données à caractère personnel
|
||||
DATAPOLICY_PORTABILITE_CONFIRMATION = Vous souhaitez exporter les données à caractère personnel de ce contact. Etes-vous sûr ?
|
||||
|
||||
#
|
||||
# Note ajoutés lors d'une anonymisation
|
||||
#
|
||||
ANONYMISER_AT = Anonymisé le %s
|
||||
|
||||
#V2
|
||||
DATAPOLICYReturn=Validation DATAPOLICY
|
||||
DATAPOLICY_date=Date d'accord/opposition au traitement
|
||||
DATAPOLICY_send=Date envoi consentement
|
||||
DATAPOLICYReturn=Retour DATAPOLICY
|
||||
DATAPOLICY_SEND=Envoyer l'email de consentement
|
||||
MailSent=L'email a bien été envoyé
|
||||
|
||||
#ERROR
|
||||
ErrorSubjectIsRequired=Erreur : vous n'avez pas indiqué l'objet de l'email dans la configuration
|
||||
=Suite à un problème technique, nous n'avons pas pu enregistrer votre choix. Nous nous en excusons. Contactez-nous pour nous transmettre votre choix.
|
||||
NUMBER_MONTH_BEFORE_DELETION = Nombre de mois avant suppression des données
|
||||
@ -1,78 +0,0 @@
|
||||
# Copyright (C) 2018 INOVEA CONSEIl info@inovea-conseil.com - Thanks to Claudio Aschieri
|
||||
#
|
||||
# # Module label 'ModuledatapolicyName'
|
||||
Module4100Name = Data Policy
|
||||
# Module description 'ModuledatapolicyDesc'
|
||||
Module4100Desc = Conformità con GDPR
|
||||
|
||||
#
|
||||
# Page d'administration
|
||||
#
|
||||
datapolicySetup = Module Setup
|
||||
Settings_DATAPOLICY = Configurazione modulo GDPR
|
||||
datapolicySetupPage = In accordo con <a href="http://www.privacy-regulation.eu/it/5.htm" target="_blank" rel="noopener noreferrer">l'art 5 del GDPR </a> i dati personali devono essere conservati per un periodo di tempo che .... ed eliminati se non sono più utili agli scopi per cui sono stati processati.
|
||||
NB_MONTHS = %s mesi
|
||||
ONE_YEAR = 1 anno
|
||||
NB_YEARS = %s anni
|
||||
DATAPOLICY_TIERS_CLIENT = Cliente
|
||||
DATAPOLICY_TIERS_PROSPECT = Fornitore
|
||||
DATAPOLICY_TIERS_PROSPECT_CLIENT = Potenziale Cliente / Cliente
|
||||
DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nè potenziale cliente / Nè cliente
|
||||
DATAPOLICY_TIERS_FOURNISSEUR = Fornitore
|
||||
DATAPOLICY_CONTACT_CLIENT = Cliente
|
||||
DATAPOLICY_CONTACT_PROSPECT = Potenziale cliente
|
||||
DATAPOLICY_CONTACT_PROSPECT_CLIENT = Potenziale Cliente / Cliente
|
||||
DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nè potenziale cliente / Nè cliente
|
||||
DATAPOLICY_CONTACT_FOURNISSEUR = Fornitore
|
||||
DATAPOLICY_ADHERENT = Membri
|
||||
DATAPOLICY_Tooltip_SETUP = Tipo di contatto - Indica la scelta per ogni tipologia
|
||||
DATAPOLICYMail=Configurazione Email
|
||||
DATAPOLICYSUBJECTMAIL=Subject dell'e-mail
|
||||
DATAPOLICYCONTENTMAIL=Contenuto dell'e-mail
|
||||
DATAPOLICYSUBSITUTION=Puoi utilizzare le seguenti variabili nella tua email (LINKACCEPT consente di creare un link per registrare l'accettazione della persona, LINKREFUSED consente di registrare il rifiuto della persona):
|
||||
DATAPOLICYACCEPT= Messaggio dopo il consenso
|
||||
DATAPOLICYREFUSE=Messaggio dopo il rifiuto
|
||||
SendAgreementText=Puoi inviare un'email GDPR a tutti i tuoi contatti rilevanti (che non hanno ancora ricevuto un'e-mail e per i quali non hai registrato nulla sul loro accordo GDPR). Per fare ciò, utilizzare il seguente pulsante.
|
||||
SendAgreement=Invia emails
|
||||
AllAgreementSend = Tutte le email sono state inviate
|
||||
TXTLINKDATAPOLICYACCEPT= Testo per il link "Consenso"
|
||||
TXTLINKDATAPOLICYREFUSE= Testo per il link "Consenso negato"
|
||||
|
||||
#
|
||||
# Extrafield
|
||||
#
|
||||
DATAPOLICY_BLOCKCHECKBOX = GDPR : Trattamento dei dati personali
|
||||
DATAPOLICY_consentement = Consenso ottenuto al Trattamento dei dati personali
|
||||
DATAPOLICY_opposition_traitement = Consenso negato al trattamento dei dati personali
|
||||
DATAPOLICY_opposition_prospection = Consenso negato al trattamento dei dati personali a fini commerciali
|
||||
|
||||
#
|
||||
# Popup
|
||||
#
|
||||
DATAPOLICY_POPUP_ANONYME_TITLE = Anonimizza un soggetto terzo
|
||||
DATAPOLICY_POPUP_ANONYME_TEXTE = Impossibile eliminare questo contatto da Dolibarr perchè vi sono elementi collegati. In conformità con il GDPR, renderai tutti questi dati anonimi per rispettare i tuoi obblighi. Vuoi continuare?
|
||||
|
||||
|
||||
#
|
||||
# Bouton portabilité
|
||||
#
|
||||
DATAPOLICY_PORTABILITE = Portabilità GDPR
|
||||
DATAPOLICY_PORTABILITE_TITLE = Esporta i dati personali
|
||||
DATAPOLICY_PORTABILITE_CONFIRMATION = Vuoi davvero esportare i dati personali di questo contatto?
|
||||
|
||||
#
|
||||
# Note ajoutée lors d'une anonymisation
|
||||
#
|
||||
ANONYMISER_AT = Anonimizzato il %s
|
||||
|
||||
#V2
|
||||
DATAPOLICYReturn=GDPR Validazione
|
||||
DATAPOLICY_date = Data di accordo / disaccordo GDPR
|
||||
DATAPOLICY_send = Data di invio del consenso (e-mail)
|
||||
DATAPOLICYReturn = GDPR ritorno
|
||||
DATAPOLICY_SEND = Inviare GDPR e-mail
|
||||
MailSent=L'email è stata inviata
|
||||
|
||||
#ERROR
|
||||
ErrorSubjectIsRequired= Errore: L'oggetto della mail è obbligatorio. Inserisci l'oggetto nella configurazione del modulo.
|
||||
=A causa di un problema tecnico, non siamo stati in grado di registrare la tua scelta. Ci scusiamo per questo. Contattaci per inviarci la tua scelta.
|
||||
@ -31,7 +31,7 @@ function datapolicyAdminPrepareHead()
|
||||
{
|
||||
global $langs, $conf;
|
||||
|
||||
$langs->load("datapolicy@datapolicy");
|
||||
$langs->load("datapolicy");
|
||||
|
||||
$h = 0;
|
||||
$head = array();
|
||||
@ -41,10 +41,10 @@ function datapolicyAdminPrepareHead()
|
||||
$head[$h][2] = 'settings';
|
||||
$h++;
|
||||
|
||||
if (!empty($conf->global->DATAPOLICIES_ENABLE_EMAILS)) {
|
||||
if (!empty($conf->global->DATAPOLICY_ENABLE_EMAILS) || getDolGlobalInt('MAIN_FEATURES_LEVEL') >= 1) {
|
||||
$head[$h][0] = DOL_URL_ROOT."/datapolicy/admin/setupmail.php";
|
||||
$head[$h][1] = $langs->trans("DATAPOLICIESMail");
|
||||
$head[$h][2] = 'settings';
|
||||
$head[$h][1] = $langs->trans("DATAPOLICYMail");
|
||||
$head[$h][2] = 'emailing';
|
||||
$h++;
|
||||
}
|
||||
|
||||
|
||||
@ -75,7 +75,7 @@ if (isset($user->socid) && $user->socid > 0) {
|
||||
// Security check (enable the most restrictive one)
|
||||
//if ($user->socid > 0) accessforbidden();
|
||||
//if ($user->socid > 0) $socid = $user->socid;
|
||||
//if (!isModEnabled('barcode')) {
|
||||
//if (!isModEnabled('mymodule')) {
|
||||
// accessforbidden('Module not enabled');
|
||||
//}
|
||||
//if (! $user->hasRight('mymodule', 'myobject', 'read')) {
|
||||
|
||||
@ -148,7 +148,9 @@ if ($enablepermissioncheck) {
|
||||
//if ($user->socid > 0) $socid = $user->socid;
|
||||
//$isdraft = (($object->status == $object::STATUS_DRAFT) ? 1 : 0);
|
||||
//restrictedArea($user, $object->element, $object->id, $object->table_element, '', 'fk_soc', 'rowid', $isdraft);
|
||||
if (empty($conf->mymodule->enabled)) accessforbidden();
|
||||
if (!isModEnabled("mymodule")) {
|
||||
accessforbidden();
|
||||
}
|
||||
if (!$permissiontoread) accessforbidden();
|
||||
|
||||
|
||||
|
||||
@ -148,8 +148,12 @@ $upload_dir = $conf->mymodule->multidir_output[isset($object->entity) ? $object-
|
||||
//if ($user->socid > 0) $socid = $user->socid;
|
||||
//$isdraft = (isset($object->status) && ($object->status == $object::STATUS_DRAFT) ? 1 : 0);
|
||||
//restrictedArea($user, $object->element, $object->id, $object->table_element, '', 'fk_soc', 'rowid', $isdraft);
|
||||
if (empty($conf->mymodule->enabled)) accessforbidden();
|
||||
if (!$permissiontoread) accessforbidden();
|
||||
if (!isModEnabled("mymodule")) {
|
||||
accessforbidden();
|
||||
}
|
||||
if (!$permissiontoread) {
|
||||
accessforbidden();
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
|
||||
@ -94,7 +94,9 @@ if ($enablepermissioncheck) {
|
||||
//if ($user->socid > 0) $socid = $user->socid;
|
||||
//$isdraft = (($object->status == $object::STATUS_DRAFT) ? 1 : 0);
|
||||
//restrictedArea($user, $object->element, $object->id, $object->table_element, '', 'fk_soc', 'rowid', $isdraft);
|
||||
if (empty($conf->mymodule->enabled)) accessforbidden();
|
||||
if (!isModEnabled("mymodule")) {
|
||||
accessforbidden();
|
||||
}
|
||||
if (!$permissiontoread) accessforbidden();
|
||||
|
||||
|
||||
|
||||
@ -140,7 +140,9 @@ if ($enablepermissioncheck) {
|
||||
//if ($user->socid > 0) $socid = $user->socid;
|
||||
//$isdraft = (($object->status == $object::STATUS_DRAFT) ? 1 : 0);
|
||||
//restrictedArea($user, $object->element, $object->id, $object->table_element, '', 'fk_soc', 'rowid', $isdraft);
|
||||
if (empty($conf->mymodule->enabled)) accessforbidden();
|
||||
if (!isModEnabled("mymodule")) {
|
||||
accessforbidden();
|
||||
}
|
||||
if (!$permissiontoread) accessforbidden();
|
||||
|
||||
|
||||
|
||||
@ -199,7 +199,9 @@ if ($user->socid > 0) accessforbidden();
|
||||
//$socid = 0; if ($user->socid > 0) $socid = $user->socid;
|
||||
//$isdraft = (($object->status == $object::STATUS_DRAFT) ? 1 : 0);
|
||||
//restrictedArea($user, $object->element, 0, $object->table_element, '', 'fk_soc', 'rowid', $isdraft);
|
||||
if (empty($conf->mymodule->enabled)) accessforbidden('Module not enabled');
|
||||
if (!isModEnabled("mymodule")) {
|
||||
accessforbidden();
|
||||
}
|
||||
if (!$permissiontoread) accessforbidden();
|
||||
|
||||
|
||||
|
||||
@ -120,7 +120,9 @@ if ($enablepermissioncheck) {
|
||||
//if ($user->socid > 0) $socid = $user->socid;
|
||||
//$isdraft = (($object->status == $object::STATUS_DRAFT) ? 1 : 0);
|
||||
//restrictedArea($user, $object->element, $object->id, $object->table_element, '', 'fk_soc', 'rowid', $isdraft);
|
||||
if (empty($conf->mymodule->enabled)) accessforbidden();
|
||||
if (!isModEnabled("mymodule")) {
|
||||
accessforbidden();
|
||||
}
|
||||
if (!$permissiontoread) accessforbidden();
|
||||
|
||||
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
<?php
|
||||
|
||||
/* Copyright (C) 2018 Nicolas ZABOURI <info@inovea-conseil.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
@ -19,15 +18,12 @@
|
||||
/**
|
||||
* \file htdocs/datapolicy/admin/setup.php
|
||||
* \ingroup datapolicy
|
||||
* \brief datapolicy setup page.
|
||||
* \brief Page to show the result of updating it Data policiy preferences after an email campaign using sendMailDataPolicyContact()
|
||||
*/
|
||||
|
||||
if (!defined('NOLOGIN')) {
|
||||
define("NOLOGIN", 1); // This means this output page does not require to be logged.
|
||||
}
|
||||
if (!defined('NOCSRFCHECK')) {
|
||||
define('NOCSRFCHECK', '1'); // Do not check anti CSRF attack test
|
||||
}
|
||||
if (!defined('NOREQUIREMENU')) {
|
||||
define('NOREQUIREMENU', '1');
|
||||
}
|
||||
@ -38,89 +34,103 @@ require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/datapolicy/class/datapolicy.class.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/security.lib.php';
|
||||
|
||||
$idc = GETPOST('c', 'int');
|
||||
$ids = GETPOST('s', 'int');
|
||||
$ida = GETPOST('a', 'int');
|
||||
$action = GETPOST('action', 'aZ09');
|
||||
$lang = GETPOST('l', 'alpha');
|
||||
$code = GETPOST('key', 'alpha');
|
||||
$action = GETPOST('action', 'aZ09'); // 1 or 2
|
||||
$l = GETPOST('l', 'alpha');
|
||||
$securitykey = GETPOST('key', 'alpha');
|
||||
|
||||
$acc = "DATAPOLICIESACCEPT_".$lang;
|
||||
$ref = "DATAPOLICIESREFUSE_".$lang;
|
||||
$langs->load('datapolicy@datapolicy', 0, 0, $lang);
|
||||
$acc = "DATAPOLICIESACCEPT_".$l;
|
||||
$ref = "DATAPOLICIESREFUSE_".$l;
|
||||
$langs->load('datapolicy', 0, 0, $l);
|
||||
|
||||
|
||||
/*
|
||||
* Actions
|
||||
*/
|
||||
|
||||
if (empty($action) || (empty($idc) && empty($ids) && empty($ida))) {
|
||||
print 'Missing paramater s, c or a';
|
||||
return 0;
|
||||
} elseif (!empty($idc)) {
|
||||
$contact = new Contact($db);
|
||||
$contact->fetch($idc);
|
||||
$check = md5($contact->email);
|
||||
if ($check != $code) {
|
||||
$return = $langs->trans('ErrorEmailDATAPOLICIES');
|
||||
$check = dol_hash($contact->email, 'md5');
|
||||
if ($check != $securitykey) {
|
||||
$return = $langs->trans('Bad value for key.');
|
||||
} elseif ($action == 1) {
|
||||
$contact->array_options['options_datapolicy_consentement'] = 1;
|
||||
$contact->array_options['options_datapolicy_opposition_traitement'] = 0;
|
||||
$contact->array_options['options_datapolicy_opposition_prospection'] = 0;
|
||||
$contact->array_options['options_datapolicy_date'] = date('Y-m-d', time());
|
||||
$contact->array_options['options_datapolicy_date'] = dol_now();
|
||||
|
||||
$return = $conf->global->$acc;
|
||||
$return = getDolGlobalString($acc);
|
||||
} elseif ($action == 2) {
|
||||
$contact->no_email = 1;
|
||||
$contact->array_options['options_datapolicy_consentement'] = 0;
|
||||
$contact->array_options['options_datapolicy_opposition_traitement'] = 1;
|
||||
$contact->array_options['options_datapolicy_opposition_prospection'] = 1;
|
||||
$contact->array_options['options_datapolicy_date'] = date('Y-m-d', time());
|
||||
$contact->array_options['options_datapolicy_date'] = dol_now();
|
||||
|
||||
$return = $conf->global->$ref;
|
||||
$return = getDolGlobalString($ref);
|
||||
}
|
||||
$contact->update($idc);
|
||||
} elseif (!empty($ids)) {
|
||||
$societe = new Societe($db);
|
||||
$societe->fetch($ids);
|
||||
$check = md5($societe->email);
|
||||
if ($check != $code) {
|
||||
$return = $langs->trans('ErrorEmailDATAPOLICIES');
|
||||
$check = dol_hash($societe->email, 'md5');
|
||||
if ($check != $securitykey) {
|
||||
$return = $langs->trans('Bad value for key.');
|
||||
} elseif ($action == 1) {
|
||||
$societe->array_options['options_datapolicy_consentement'] = 1;
|
||||
$societe->array_options['options_datapolicy_opposition_traitement'] = 0;
|
||||
$societe->array_options['options_datapolicy_opposition_prospection'] = 0;
|
||||
$societe->array_options['options_datapolicy_date'] = date('Y-m-d', time());
|
||||
$return = $conf->global->$acc;
|
||||
$societe->array_options['options_datapolicy_date'] = dol_now();
|
||||
|
||||
$return = getDolGlobalString($acc);
|
||||
} elseif ($action == 2) {
|
||||
$societe->array_options['options_datapolicy_consentement'] = 0;
|
||||
$societe->array_options['options_datapolicy_opposition_traitement'] = 1;
|
||||
$societe->array_options['options_datapolicy_opposition_prospection'] = 1;
|
||||
$societe->array_options['options_datapolicy_date'] = date('Y-m-d', time());
|
||||
$societe->array_options['options_datapolicy_date'] = dol_now();
|
||||
|
||||
$return = $conf->global->$ref;
|
||||
$return = getDolGlobalString($ref);
|
||||
}
|
||||
$societe->update($ids);
|
||||
} elseif (!empty($ida)) {
|
||||
$adherent = new Adherent($db);
|
||||
$adherent->fetch($ida);
|
||||
$check = md5($adherent->email);
|
||||
if ($check != $code) {
|
||||
$return = $langs->trans('ErrorEmailDATAPOLICIES');
|
||||
$check = dol_hash($adherent->email, 'md5');
|
||||
if ($check != $securitykey) {
|
||||
$return = $langs->trans('Bad value for key.');
|
||||
} elseif ($action == 1) {
|
||||
$adherent->array_options['options_datapolicy_consentement'] = 1;
|
||||
$adherent->array_options['options_datapolicy_opposition_traitement'] = 0;
|
||||
$adherent->array_options['options_datapolicy_opposition_prospection'] = 0;
|
||||
//$adherent->array_options['options_datapolicy_date'] = date('Y-m-d', time());
|
||||
$return = $conf->global->$acc;
|
||||
//$adherent->array_options['options_datapolicy_date'] = dol_now();
|
||||
|
||||
$return = getDolGlobalString($acc);
|
||||
} elseif ($action == 2) {
|
||||
$adherent->array_options['options_datapolicy_consentement'] = 0;
|
||||
$adherent->array_options['options_datapolicy_opposition_traitement'] = 1;
|
||||
$adherent->array_options['options_datapolicy_opposition_prospection'] = 1;
|
||||
//$adherent->array_options['options_datapolicy_date'] = date('Y-m-d', time());
|
||||
//$adherent->array_options['options_datapolicy_date'] = dol_now();
|
||||
|
||||
$return = $conf->global->$ref;
|
||||
$return = getDolGlobalString($ref);
|
||||
}
|
||||
$newuser = new User($db);
|
||||
$adherent->update($newuser);
|
||||
}
|
||||
|
||||
header("Content-type: text/html; charset=".$conf->file->character_set_client);
|
||||
|
||||
/*
|
||||
* View
|
||||
*/
|
||||
|
||||
top_httphead();
|
||||
|
||||
print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">';
|
||||
print "\n";
|
||||
Loading…
Reference in New Issue
Block a user