X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=modules%2Femail.php;h=bf1d62c345455cd8d3e54caa0191ed609ae67d52;hb=e168b75d2b82a6297d84cf9b3f87c6302333c5ce;hp=38672f34822bd8e4d61c9bd2333e14313827ca54;hpb=0c8cd507ad27b70c20e9f056b77fc286ee88e04f;p=platal.git diff --git a/modules/email.php b/modules/email.php index 38672f3..bf1d62c 100644 --- a/modules/email.php +++ b/modules/email.php @@ -1,6 +1,6 @@ $this->make_hook('emails', AUTH_COOKIE), - 'emails/alias' => $this->make_hook('alias', AUTH_MDP), - 'emails/antispam' => $this->make_hook('antispam', AUTH_MDP), - 'emails/broken' => $this->make_hook('broken', AUTH_COOKIE), - 'emails/redirect' => $this->make_hook('redirect', AUTH_MDP), - 'emails/send' => $this->make_hook('send', AUTH_MDP), - 'emails/antispam/submit' => $this->make_hook('submit', AUTH_COOKIE), - 'emails/test' => $this->make_hook('test', AUTH_COOKIE, 'user', NO_AUTH), - - 'emails/rewrite/in' => $this->make_hook('rewrite_in', AUTH_PUBLIC), - 'emails/rewrite/out' => $this->make_hook('rewrite_out', AUTH_PUBLIC), - - 'emails/imap/in' => $this->make_hook('imap_in', AUTH_PUBLIC), - - 'admin/emails/duplicated' => $this->make_hook('duplicated', AUTH_MDP, 'admin'), - 'admin/emails/watch' => $this->make_hook('duplicated', AUTH_MDP, 'admin'), - 'admin/emails/lost' => $this->make_hook('lost', AUTH_MDP, 'admin'), + 'emails' => $this->make_hook('emails', AUTH_COOKIE), + 'emails/alias' => $this->make_hook('alias', AUTH_MDP), + 'emails/antispam' => $this->make_hook('antispam', AUTH_MDP), + 'emails/broken' => $this->make_hook('broken', AUTH_COOKIE), + 'emails/redirect' => $this->make_hook('redirect', AUTH_MDP), + 'emails/send' => $this->make_hook('send', AUTH_MDP), + 'emails/antispam/submit' => $this->make_hook('submit', AUTH_COOKIE), + 'emails/test' => $this->make_hook('test', AUTH_COOKIE, 'user', NO_AUTH), + + 'emails/rewrite/in' => $this->make_hook('rewrite_in', AUTH_PUBLIC), + 'emails/rewrite/out' => $this->make_hook('rewrite_out', AUTH_PUBLIC), + + 'emails/imap/in' => $this->make_hook('imap_in', AUTH_PUBLIC), + + 'admin/emails/duplicated' => $this->make_hook('duplicated', AUTH_MDP, 'admin'), + 'admin/emails/watch' => $this->make_hook('duplicated', AUTH_MDP, 'admin'), + 'admin/emails/lost' => $this->make_hook('lost', AUTH_MDP, 'admin'), ); } @@ -235,9 +235,9 @@ class EmailModule extends PLModule $email = str_replace(' ', '+', $email); // Apply email redirection change requests. + $result = SUCCESS; if ($action == 'remove' && $email) { - $retour = $redirect->delete_email($email); - $page->assign('retour', $retour); + $result = $redirect->delete_email($email); } if ($action == 'active' && $email) { @@ -259,15 +259,29 @@ class EmailModule extends PLModule $actifs = Env::v('emails_actifs', Array()); print_r(Env::v('emails_rewrite')); if (Env::v('emailop') == "ajouter" && Env::has('email')) { - $page->assign('retour', $redirect->add_email(Env::v('email'))); + $result = $redirect->add_email(Env::v('email')); } elseif (empty($actifs)) { - $page->assign('retour', ERROR_INACTIVE_REDIRECTION); + $result = ERROR_INACTIVE_REDIRECTION; } elseif (is_array($actifs)) { - $page->assign('retour', $redirect->modify_email($actifs, - Env::v('emails_rewrite',Array()))); + $result = $redirect->modify_email($actifs, Env::v('emails_rewrite', Array())); } } + switch ($result) { + case ERROR_INACTIVE_REDIRECTION: + $page->trigError('Tu ne peux pas avoir aucune adresse de redirection active, sinon ton adresse ' + . $user->forlifeEmail() . ' ne fonctionnerait plus.'); + break; + case ERROR_INVALID_EMAIL: + $page->trigError('Erreur: l\'email n\'est pas valide.'); + break; + case ERROR_LOOP_EMAIL: + $page->trigError('Erreur : ' . $user->forlifeEmail() + . ' ne doit pas être renvoyé vers lui-même, ni vers son équivalent en ' + . $globals->mail->domain2 . ' ni vers polytechnique.edu.'); + break; + } + // Fetch the @alias_dom email alias, if any. $res = XDB::query( "SELECT alias