X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=include%2Femails.combobox.inc.php;h=05525c55aca16be1bf29ac53956aff770884845e;hb=3424387cde6c635ff16c3b5459c4caa88bb76e2e;hp=3409e7ad505dabdfd29f609a18f93c8a764f2c84;hpb=8231a8595422f734d315d64ce36fef0dbebc0abf;p=platal.git diff --git a/include/emails.combobox.inc.php b/include/emails.combobox.inc.php index 3409e7a..05525c5 100644 --- a/include/emails.combobox.inc.php +++ b/include/emails.combobox.inc.php @@ -1,6 +1,6 @@ profile(true); - } - $email_type = 'directory'; + /* Always refetch the profile. */ + $profile = $user->profile(true); - if ($profile) { - $email_directory = $profile->email_directory; - $page->assign('email_directory', $email_directory); + $emails = array(); + if (in_array('source', $retrieve)) { + $emails['Emails polytechniciens'] = XDB::fetchColumn('SELECT CONCAT(s.email, \'@\', d.name) + FROM email_source_account AS s + INNER JOIN email_virtual_domains AS m ON (s.domain = m.id) + INNER JOIN email_virtual_domains AS d ON (d.aliasing = m.id) + WHERE s.uid = {?} + ORDER BY s.email, d.name', + $user->id()); + } - $res = XDB::fetchAllAssoc('SELECT email - FROM profile_job - WHERE pid = {?}', $profile->id()); - $pro = array(); - foreach ($res as $res_it) { - if ($res_it['email'] != '') { - $pro[] = $res_it['email']; - if ($email_directory == $res_it['email']) { - $email_type = "pro"; - } + if (in_array('redirect', $retrieve)) { + $redirect = new Redirect($user); + $emails['Redirections'] = array(); + foreach ($redirect->emails as $redirect_it) { + if ($redirect_it->is_redirection()) { + $emails['Redirections'][] = $redirect_it->email; } } - $page->assign('list_email_pro', $pro); } - if ($user) { - $res = XDB::fetchAllAssoc('SELECT CONCAT(s.email, \'@\', d.name) AS email - FROM email_source_account AS s - INNER JOIN email_virtual_domains AS m ON (s.domain = m.id) - INNER JOIN email_virtual_domains AS d ON (d.aliasing = m.id) - WHERE s.uid = {?} - ORDER BY s.email, d.name', $user->id()); - $page->assign('list_email_X', $res); - foreach ($res as $res_it) { - if ($email_directory == $res_it) { - $email_type = 'X'; - } + if ($profile) { + if (in_array('job', $retrieve)) { + $emails['Emails professionels'] = XDB::fetchColumn('SELECT email + FROM profile_job + WHERE pid = {?} AND email IS NOT NULL AND email != \'\'', + $profile->id()); } - require_once 'emails.inc.php'; - $redirect = new Redirect($user); - $redir = array(); - foreach ($redirect->emails as $redirect_it) { - if ($redirect_it->is_redirection()) { - $redir[] = $redirect_it->email; - if ($email_directory == $redirect_it->email) { - $email_type = 'redir'; + if ($profile->email_directory) { + if (in_array('directory', $retrieve)) { + foreach ($emails as &$email_list) { + foreach ($email_list as $key => $email) { + if ($profile->email_directory == $email) { + unset($email_list[$key]); + } + } + } + $emails['Email annuaire AX'] = array($profile->email_directory); + } elseif (in_array('stripped_directory', $retrieve)) { + if (User::isForeignEmailAddress($profile->email_directory)) { + $is_redirect = XDB::fetchOneCell('SELECT COUNT(*) + FROM email_redirect_account + WHERE uid = {?} AND redirect = {?}', + $user->id(), $profile->email_directory); + if ($is_redirect == 0) { + $emails['Email annuaire AX'] = array($profile->email_directory); + } } } } - $page->assign('list_email_redir', $redir); - $page->assign('email_type', $email_type); - } else { - $page->assign('list_email_X', array()); - $page->assign('list_email_redir', array()); - $page->assign('list_email_pro', array()); + + if (isset($emails['Emails professionels']) && isset($emails['Redirections'])) { + $intersect = array_intersect($emails['Emails professionels'], $emails['Redirections']); + foreach ($intersect as $key => $email) { + unset($emails['Emails professionels'][$key]); + } + } + } + + $emails_count = 0; + foreach ($emails as $email_list) { + $emails_count += count($email_list); } + $page->assign('emails_count', $emails_count); + $page->assign('email_lists', $emails); } -// vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8: +// vim:set et sw=4 sts=4 sws=4 foldmethod=marker fenc=utf-8: ?>