Fixes non-referenced use of User, which would have led to a performance impact.
[platal.git] / modules / email.php
index 5b903c5..f86c85b 100644 (file)
@@ -47,7 +47,7 @@ class EmailModule extends PLModule
         require_once 'emails.inc.php';
 
         $page->changeTpl('emails/index.tpl');
-        $page->setTitle('Polytechnique.org - Mes emails');
+        $page->setTitle('Mes emails');
 
         $uid = S::v('uid');
 
@@ -98,7 +98,7 @@ class EmailModule extends PLModule
         global $globals;
 
         $page->changeTpl('emails/alias.tpl');
-        $page->setTitle('Polytechnique.org - Alias melix.net');
+        $page->setTitle('Alias melix.net');
 
         $uid     = S::v('uid');
         $forlife = S::v('forlife');
@@ -171,7 +171,7 @@ class EmailModule extends PLModule
                 }
 
                 //Insertion de la demande dans la base, écrase les requêtes précédente
-                $myalias = new AliasReq($uid, $alias, $raison, $public);
+                $myalias = new AliasReq(S::user(), $alias, $raison, $public);
                 $myalias->submit();
                 $page->assign('success',$alias);
                 return;
@@ -277,8 +277,8 @@ class EmailModule extends PLModule
     function handler_antispam(&$page, $statut_filtre = null)
     {
         require_once 'emails.inc.php';
-        require_once('wiki.inc.php');
-        wiki_require_page('Xorg.Antispam');
+        $wp = new PlWikiPage('Xorg.Antispam');
+        $wp->buildCache();
 
         $page->changeTpl('emails/antispam.tpl');
 
@@ -291,14 +291,14 @@ class EmailModule extends PLModule
 
     function handler_submit(&$page)
     {
-        require_once('wiki.inc.php');
-        wiki_require_page('Xorg.Mails');
+        $wp = new PlWikiPage('Xorg.Mails');
+        $wp->buildCache();
         $page->changeTpl('emails/submit_spam.tpl');
 
         if (Post::has('send_email')) {
             S::assert_xsrf_token();
 
-            $upload = PlUpload::get($_FILES['mail'], S::v('forlife'), 'spam.submit', true);
+            $upload = PlUpload::get($_FILES['mail'], S::user()->login(), 'spam.submit', true);
             if (!$upload) {
                 $page->trigError('Une erreur a été rencontrée lors du transfert du fichier');
                 return;
@@ -306,7 +306,7 @@ class EmailModule extends PLModule
             $mime = $upload->contentType();
             if ($mime != 'text/x-mail' && $mime != 'message/rfc822') {
                 $upload->clear();
-                $page->trigError('Le fichier ne contient pas un mail complet');
+                $page->trigError('Le fichier ne contient pas un email complet');
                 return;
             }
             global $globals;
@@ -328,7 +328,7 @@ class EmailModule extends PLModule
         $page->changeTpl('emails/send.tpl');
         $page->addJsLink('ajax.js');
 
-        $page->setTitle('Polytechnique.org - Envoyer un email');
+        $page->setTitle('Envoyer un email');
 
         // action si on recoit un formulaire
         if (Post::has('save')) {
@@ -363,7 +363,7 @@ class EmailModule extends PLModule
 
             $error = false;
             foreach ($_FILES as &$file) {
-                if ($file['name'] && !PlUpload::get($file, S::v('forlife'), 'emails.send', false)) {
+                if ($file['name'] && !PlUpload::get($file, S::user()->login(), 'emails.send', false)) {
                     $page->trigError(PlUpload::$lastError);
                     $error = true;
                     break;
@@ -385,7 +385,7 @@ class EmailModule extends PLModule
 
                 if (empty($to) && empty($cc) && empty($to2) && empty($bcc) && empty($cc2)) {
                     $page->trigError("Indique au moins un destinataire.");
-                    $page->assign('uploaded_f', PlUpload::listFilenames(S::v('forlife'), 'emails.send'));
+                    $page->assign('uploaded_f', PlUpload::listFilenames(S::user()->login(), 'emails.send'));
                 } else {
                     $mymail = new PlMailer();
                     $mymail->setFrom($from);
@@ -395,7 +395,7 @@ class EmailModule extends PLModule
                     if (!empty($bcc)) { $mymail->addBcc($bcc); }
                     if (!empty($to2)) { $mymail->addTo($to2); }
                     if (!empty($cc2)) { $mymail->addCc($cc2); }
-                    $files =& PlUpload::listFiles(S::v('forlife'), 'emails.send');
+                    $files =& PlUpload::listFiles(S::user()->login(), 'emails.send');
                     foreach ($files as $name=>&$upload) {
                         $mymail->addUploadAttachment($upload, $name);
                     }
@@ -405,12 +405,12 @@ class EmailModule extends PLModule
                         $mymail->setWikiBody($txt);
                     }
                     if ($mymail->send()) {
-                        $page->trigSuccess("Ton mail a bien été envoyé.");
+                        $page->trigSuccess("Ton email a bien été envoyé.");
                         $_REQUEST = array('bcc' => S::v('bestalias').'@'.$globals->mail->domain);
-                        PlUpload::clear(S::v('forlife'), 'emails.send');
+                        PlUpload::clear(S::user()->login(), 'emails.send');
                     } else {
                         $page->trigError("Erreur lors de l'envoi du courriel, réessaye.");
-                        $page->assign('uploaded_f', PlUpload::listFilenames(S::v('forlife'), 'emails.send'));
+                        $page->assign('uploaded_f', PlUpload::listFilenames(S::user()->login(), 'emails.send'));
                     }
                 }
             }
@@ -419,7 +419,7 @@ class EmailModule extends PLModule
                                  FROM  email_send_save
                                 WHERE  uid = {?}", S::i('uid'));
             if ($res->numRows() == 0) {
-                PlUpload::clear(S::v('forlife'), 'emails.send');
+                PlUpload::clear(S::user()->login(), 'emails.send');
                 $_REQUEST['bcc'] = S::v('bestalias').'@'.$globals->mail->domain;
             } else {
                 $data = unserialize($res->fetchOneCell());
@@ -438,7 +438,7 @@ class EmailModule extends PLModule
         $page->assign('maxsize', ini_get('upload_max_filesize') . 'o');
     }
 
-    function handler_test(&$page, $forlife = null)
+    function handler_test(&$page, $hruid = null)
     {
         global $globals;
         require_once 'emails.inc.php';
@@ -446,23 +446,26 @@ class EmailModule extends PLModule
         if (!S::has_xsrf_token()) {
             return PL_FORBIDDEN;
         }
-        if (!S::has_perms() || !$forlife) {
-            $forlife = S::v('bestalias');
+
+        // Retrieves the User object for the test email recipient.
+        if (S::has_perms() && $hruid) {
+            $user = User::getSilent($hruid);
+        } else {
+            $user = S::user();
+        }
+        if (!$user) {
+            return PL_NOT_FOUND;
         }
 
-        $res = XDB::query("SELECT  FIND_IN_SET('femme', u.flags), prenom, user_id
-                             FROM  auth_user_md5 AS u
-                       INNER JOIN  aliases AS a ON (a.id = u.user_id)
-                            WHERE  a.alias = {?}", $forlife);
-        list($sexe, $prenom, $uid) = $res->fetchOneRow();
-        $redirect = new Redirect($uid);
+        // Sends the test email.
+        $redirect = new Redirect($user->id());
 
         $mailer = new PlMailer('emails/test.mail.tpl');
-        $mailer->assign('email', $forlife . '@' . $globals->mail->domain);
+        $mailer->assign('email', $user->bestEmail());
         $mailer->assign('redirects', $redirect->active_emails());
-        $mailer->assign('sexe', $sexe);
-        $mailer->assign('prenom', $prenom);
-        $mailer->send();
+        $mailer->assign('display_name', $user->displayName());
+        $mailer->assign('sexe', $user->isFemale());
+        $mailer->send($user->isEmailFormatHtml());
         exit;
     }
 
@@ -499,8 +502,8 @@ class EmailModule extends PLModule
     function handler_broken(&$page, $warn = null, $email = null)
     {
         require_once 'emails.inc.php';
-        require_once('wiki.inc.php');
-        wiki_require_page('Xorg.PatteCassée');
+        $wp = new PlWikiPage('Xorg.PatteCassée');
+        $wp->buildCache();
 
         global $globals;
 
@@ -522,9 +525,9 @@ class EmailModule extends PLModule
                 // envoi du mail
                 $message = "Bonjour !
 
-Ce mail a été généré automatiquement par le service de patte cassée de
+Cet email a été généré automatiquement par le service de patte cassée de
 Polytechnique.org car un autre utilisateur, ".S::v('prenom').' '.S::v('nom').",
-nous a signalé qu'en t'envoyant un mail, il avait reçu un message d'erreur
+nous a signalé qu'en t'envoyant un email, il avait reçu un message d'erreur
 indiquant que ton adresse de redirection $email
 ne fonctionnait plus !
 
@@ -545,7 +548,7 @@ L'équipe d'administration <support@" . $globals->mail->domain . '>';
                 $mail->setSubject("Une de tes adresse de redirection Polytechnique.org ne marche plus !!");
                 $mail->setTxtBody($message);
                 $mail->send();
-                $page->trigSuccess("Mail envoyé !");
+                $page->trigSuccess("Email envoyé !");
             }
         } elseif (Post::has('email')) {
             S::assert_xsrf_token();