Commit 1b8cd109 authored by Romain Therville's avatar Romain Therville 🐭

Removes emails declared as "email_to_discard" in typo3 from the purge

mail's recipient (to) list.
They still appear in the list of user attached to the project in the
mail, but do not receive it. (more details in issue#128)
issue#128
parent 4e5c794e
......@@ -109,6 +109,10 @@ class tx_nG6_pi6 extends \TYPO3\CMS\Frontend\Plugin\AbstractPlugin {
#retrieve project data
$p=tx_nG6_db::select_a_project_retention_data_info($project_id, FALSE, TRUE);
#retrieve discarded emails
$string_emails_to_discard = $GLOBALS['TSFE']->tmpl->setup["plugin."]["tx_nG6_pi6."]["email_to_discard"] ;
$array_emails_to_discard = explode(',',$string_emails_to_discard);
#build email list of managers
$users_id=array();
$users_emails = array();
......@@ -117,22 +121,22 @@ class tx_nG6_pi6 extends \TYPO3\CMS\Frontend\Plugin\AbstractPlugin {
$users_id[$u["right_level_label"]]=Array();
$users_emails[$u["right_level_label"]]=Array();
}
$users_id[$u["right_level_label"]][] = $u["user_id"];
$users_emails[$u["right_level_label"]][] = $u["email"];
}
$users_id[$u["right_level_label"]][] = $u["user_id"];
$users_emails[$u["right_level_label"]][] = $u["email"];
}
#Warn if mail is sent to several manager
//Warn if mail is sent to several manager
$email_warn="" ;
$purge_email_to="";
$purge_user_id_to=Array();
if ( count( $users_emails['manager']) >= 1 ) {
if ( count( $users_emails['manager']) > 1 ) {
$email_warn="Be aware that this project is associated to several managers (all received this email), please send only one answer per purge alert number.\n";
}
$users_emails_to = array_merge($users_emails['administrator'],$users_emails['manager'],$users_emails['member']);
$purge_user_id_to = array_merge($users_id['administrator'],$users_id['manager'],$users_id['member']);
$purge_email_to = join(', ',$users_emails_to );
} elseif ( count($users_emails['manager']) == 0) {
if( count( $users_emails['member']) >= 1){
......@@ -142,14 +146,28 @@ class tx_nG6_pi6 extends \TYPO3\CMS\Frontend\Plugin\AbstractPlugin {
$users_emails_to = $users_emails['administrator'];
$purge_user_id_to=array_merge($users_id['administrator']);
}
$purge_email_to=join(', ',$users_emails_to );
$email_warn="As this project do not have managers, administrators and members recieved this alert.\n";
$email_warn.= " - Administrator(s): ".join(', ',$users_emails['administrator']). "\n";
$email_warn.= " - Members(s): ".join(', ',$users_emails['member']). "\n";
}
//Remove the discarded emails and ids from the lists (emails and ids).
foreach ( $array_emails_to_discard as $key1 => $dis_mail ){
if (($key = array_search($dis_mail, $users_emails_to)) !== false) {
unset($users_emails_to[$key]);
foreach ( $p[$project_id]["users"] as $key2 => $u ){
if($u["email"] == $dis_mail ){
unset($purge_user_id_to[$key2]);
}
}
}
}
$purge_email_to = join(', ',$users_emails_to );
//Retrieve purgeable information for email
$run_info=Array();
$analyses_info=Array();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment