}
}
+// class MailStorage {{{1
+class MailStorage {
+ protected $uid;
+ protected $name;
+
+ public function __construct($_uid, $_name)
+ {
+ $this->uid = $_uid;
+ $this->name = $_name;
+ }
+
+ public function disable()
+ {
+ $res = XDB::query("SELECT mail_storage
+ FROM auth_user_md5
+ WHERE user_id = {?}", $this->uid);
+ $storages = explode(',', $res->fetchOneCell());
+
+ if (in_array($this->name, $storages)) {
+ array_splice($storages, array_search($this->name, $storages), 1);
+ XDB::execute("UPDATE auth_user_md5
+ SET mail_storage = {?}
+ WHERE user_id = {?}", implode(',', $storages), $this->uid);
+ }
+ }
+
+ public function enable()
+ {
+ XDB::execute("UPDATE auth_user_md5
+ SET mail_storage = CONCAT_WS(',', IF(mail_storage = '', NULL, mail_storage), {?})
+ WHERE user_id = {?} AND
+ FIND_IN_SET({?}, mail_storage) = 0", $this->name, $this->uid, $this->name);
+ }
+}
+
+class MailStorageIMAP extends MailStorage {
+ public function __construct($_uid)
+ {
+ parent::__construct($_uid, 'imap');
+ }
+}
+
// vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8:
?>
$homonyme = XDB::query("SELECT alias FROM aliases INNER JOIN homonymes ON (id = homonyme_id) WHERE user_id = {?} AND type = 'homonyme'", $uid);
$page->assign('homonyme', $homonyme->fetchOneCell());
+ // Affichage des redirections de l'utilisateur.
$sql = "SELECT email
FROM emails
WHERE uid = {?} AND FIND_IN_SET('active', flags)";
$page->assign('mails', XDB::iterator($sql, $uid));
+ // Affichage des backends actifs de stockage des emails.
+ $sql = "SELECT mail_storage
+ FROM auth_user_md5
+ WHERE user_id = {?}";
+ $storages = XDB::query($sql, $uid)->fetchOneCell();
+ $page->assign('storage', explode(',', $storages));
// on regarde si l'utilisateur a un alias et si oui on l'affiche !
$forlife = S::v('forlife');
$redirect->modify_one_email_redirect($email, $rewrite);
}
+ if ($action == 'storage' && $email == 'imap') {
+ $storage = new MailStorageIMAP(S::v('uid'));
+ $subaction = @func_get_arg(3);
+ if ($subaction == 'active') {
+ $storage->enable();
+ }
+ if ($subaction == 'inactive') {
+ $storage->disable();
+ }
+ }
+
if (Env::has('emailop')) {
$actifs = Env::v('emails_actifs', Array());
print_r(Env::v('emails_rewrite'));
$page->assign('alias', $res->fetchAllAssoc());
$page->assign('emails',$redirect->emails);
+
+ $res = XDB::query(
+ "SELECT mail_storage
+ FROM auth_user_md5
+ WHERE user_id = {?}", $uid);
+ $page->assign('storage', explode(',', $res->fetchOneCell()));
}
function handler_antispam(&$page, $statut_filtre = null)
</p>
{else}
Actuellement, tout courrier électronique qui t'y est adressé, est envoyé
- {if $mails->total() eq 1} à l'adresse {else} aux adresses {/if}
+ {if $mails->total() eq 1} à l'adresse{else} aux adresses{/if} :
<ul>
{iterate from=$mails item=m}
<li><strong>{$m.email}</strong></li>
{/iterate}
</ul>
{/if}
+ {if count($storage) neq 0}
+ Ton courrier est également stocké sur {if count($storage) eq 1}le compte suivant{else} les comptes suivants{/if} :
+ <ul>
+ {foreach from=$storage item=s}
+ {if in_array('googleapps', $storage)}
+ <li><a href="https://www.polytechnique.org/Xorg/GoogleApps">
+ <strong>Compte Google Apps / GMail de Polytechnique.org</strong>
+ </a></li>
+ {elseif in_array('imap', $storage)}
+ <li><a href="https://www.polytechnique.org/Xorg/IMAP">
+ <strong>Accès de secours aux emails (IMAP)</strong>
+ </a></li>
+ {/if}
+ {/foreach}
+ </ul>
+ {/if}
{test_email}
Si tu souhaites <strong>modifier ce reroutage de ton courrier,</strong>
- <a href="emails/redirect">il te suffit de te rendre ici !</a>
+ <a href="emails/redirect">il te suffit de te rendre ici !</a>
</td>
</tr>
</table>
</fieldset>
{/if}
+<h1>Tes comptes de stockage de courrier</h1>
+<p>
+ Polytechnique.org te propose de conserver les mails que tu reçois, pendant une durée limitée (environ 30 jours).
+ Grâce à ce service, tu disposes d'une sauvegarde de tes mails en secours, au cas où, par exemple, tu effacerais
+ un mail par erreur.<br />
+ <strong>Attention :</strong> il ne s'agit que d'un service de secours, dont la disponibilité n'est pas garantie.
+</p>
+
+<table class="bicol" summary="Compte de stockage">
+ <tr>
+ <th colspan="2">Compte de stockage</th>
+ </tr>
+ <tr class="pair">
+ <td>
+ <a href="https://www.polytechnique.org/Xorg/IMAP">
+ <strong>Accès de secours aux emails (IMAP)</strong>
+ </a><br />Hébergé par Polytechnique.org
+ </td>
+ <td>
+ <form action="emails/redirect/storage/imap/{if in_array('imap', $storage)}inactive{else}active{/if}" method="post">
+ {if in_array('imap', $storage)}
+ <input type="submit" value="Désactiver" />
+ {else}
+ <input type="submit" value="Activer" />
+ {/if}
+ </form>
+ </td>
+ </tr>
+</table>
+
{if $eleve}
<h1>Pour les Élèves (non encore diplômés)</h1>
<p>
--- /dev/null
+ALTER TABLE auth_user_md5 ADD COLUMN mail_storage SET('imap', 'googleapps') DEFAULT '' NOT NULL AFTER smtppass;
+UPDATE auth_user_md5 SET mail_storage = 'imap' WHERE mail_storage = '';
+
+# vim:set syntax=mysql: