Fix a race condition in active redirection validation.
[platal.git] / templates / emails / redirect.tpl
CommitLineData
0337d704 1{**************************************************************************}
2{* *}
179afa7f 3{* Copyright (C) 2003-2008 Polytechnique.org *}
0337d704 4{* http://opensource.polytechnique.org/ *}
5{* *}
6{* This program is free software; you can redistribute it and/or modify *}
7{* it under the terms of the GNU General Public License as published by *}
8{* the Free Software Foundation; either version 2 of the License, or *}
9{* (at your option) any later version. *}
10{* *}
11{* This program is distributed in the hope that it will be useful, *}
12{* but WITHOUT ANY WARRANTY; without even the implied warranty of *}
13{* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *}
14{* GNU General Public License for more details. *}
15{* *}
16{* You should have received a copy of the GNU General Public License *}
17{* along with this program; if not, write to the Free Software *}
18{* Foundation, Inc., *}
19{* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *}
20{* *}
21{**************************************************************************}
22
23{if $retour == $smarty.const.ERROR_INACTIVE_REDIRECTION}
24 <p class="erreur">
25 Tu ne peux pas avoir aucune adresse de redirection active, sinon ton adresse
26 {$smarty.session.forlife}@{#globals.mail.domain#} ne fonctionnerait plus.
27 </p>
28{/if}
29{if $retour == $smarty.const.ERROR_INVALID_EMAIL}
30 <p class="erreur">
31 Erreur: l'email n'est pas valide.
32 </p>
33{/if}
34{if $retour == $smarty.const.ERROR_LOOP_EMAIL}
35 <p class="erreur">
a7de4ef7 36 Erreur: {$smarty.session.forlife}@{#globals.mail.domain#} ne doit pas être renvoyé
37 vers lui-même, ni vers son équivalent en {#globals.mail.domain2#} ni vers polytechnique.edu.
0337d704 38 </p>
39{/if}
0337d704 40 <h1>
41 Tes adresses de redirection
42 </h1>
43 <p>
e8439508 44 Tu configures ici les adresses emails vers lesquelles tes adresses (listées ci-dessous) sont dirigées&nbsp;:
0337d704 45 </p>
46 <ul>
47 {if $melix}
48 <li>
49 <strong>{$melix}@{#globals.mail.alias_dom#}</strong>,
50 <strong>{$melix}@{#globals.mail.alias_dom2#}</strong>
51 </li>
52 {/if}
53 {foreach from=$alias item=a}
54 <li>
55 <strong>{$a.alias}@{#globals.mail.domain#}</strong>
56 {if $a.expire}<span class='erreur'>(expire le {$a.expire|date_format})</span>{/if}
57 </li>
58 {/foreach}
59 </ul>
60 <p>
a7de4ef7 61 Le routage est en place pour les adresses dont la case "<strong>Actif</strong>" est cochée.
62 Si tu modifies souvent ton routage, tu as tout intérêt à rentrer toutes les
0337d704 63 adresses qui sont susceptibles de recevoir ton routage, de sorte qu'en
64 jouant avec les cases "<strong>Actif</strong>" tu pourras facilement mettre en place les unes
65 ou bien les autres.
66 </p>
67 <p>
a7de4ef7 68 Enfin, la <strong>réécriture</strong> consiste à substituer à ton adresse email habituelle
bb0727ea 69 (adresse gmail, orange, free, ou autre) ton adresse {#globals.mail.domain#} ou
a7de4ef7 70 {#globals.mail.domain2#} dans l'adresse d'expédition de tes messages, lorsque le courrier
71 passe par nos serveurs. Ceci arrive lorsque tu écris à un camarade sur son adresse {#globals.mail.domain#} ou
0337d704 72 {#globals.mail.domain2#}, ou lorsque tu utilises notre
483fb312 73 <a href="Xorg/SMTPSecurise">service d'envoi de courrier SMTP sécurisé</a>.
0337d704 74 </p>
b9dcbddd 75
5721c9a3 76 {javascript name=ajax}
b9dcbddd 77 <script type="text/javascript">//<![CDATA[
78 {literal}
86f17197
FB
79 function activeEnable()
80 {
81 var remove = $(".active_email:checked");
82 if (remove.length <= 1) {
83 remove.attr("disabled", "disabled");
d4a9e308 84 remove.parent('td').parent('tr').children('td').children('.remove_email').hide();
86f17197
FB
85 } else {
86 remove.removeAttr("disabled");
d4a9e308 87 $('.remove_email').show();
86f17197
FB
88 }
89 }
90
b9dcbddd 91 function redirectUpdate()
92 {
311bc3ad 93 showTempMessage('redirect-msg', "Tes redirections ont été mises à jour.", true);
86f17197 94 activeEnable();
b9dcbddd 95 }
917b5172 96
97 function removeRedirect(link, email)
98 {
99 if (confirm("Supprimer l'adresse " + email + " ?")) {
100 $.get(link.href, {},function() {
101 $('tr[@id=line_' + email.replace('@', '_at_') + ']').remove();
102 showRemove();
d4a9e308 103 activeEnable();
917b5172 104 });
105 }
106 return false;
107 }
108
109 function showRemove()
110 {
111 var removeLinks = $('.remove_email');
112 if (removeLinks.length == 1) {
113 removeLinks.hide();
114 } else {
115 removeLinks.show();
116 }
117 }
86f17197 118
6df558fd
FB
119 function updateRedirect(checked, email)
120 {
121 activeEnable();
122 Ajax.update_html(null, 'emails/redirect/' + (checked ? '' : 'in') + 'active/' + email, redirectUpdate);
123 }
124
b9dcbddd 125 {/literal}
126 //]]></script>
b679ad80 127 {javascript name="jquery"}
5ff3f06b 128 {test_email}
b9dcbddd 129 <div id="redirect-msg" style="position:absolute;"></div><br />
0337d704 130 <div class="center">
131 <table class="bicol" summary="Adresses de redirection">
132 <tr>
afde0a3a 133 <th>Redirection</th>
0337d704 134 <th>Actif</th>
a7de4ef7 135 <th>Réécriture</th>
0337d704 136 <th>&nbsp;</th>
137 </tr>
b9dcbddd 138 {foreach from=$emails item=e name=redirect}
b679ad80 139 <tr class="{cycle values="pair,impair"}" id="line_{$e->email|replace:'@':'_at_'}">
dc557110 140 <td>
141 <strong>
3b83212e 142 {if $e->broken}<span class="erreur">{assign var="erreur" value="1"}{/if}
143 {if $e->panne neq '0000-00-00'}{assign var="panne" value="1"}{icon name=error title="En panne"}{/if}
11ed26e5 144 {$e->display_email}
b832310a 145 {if $e->broken}</span>{/if}
dc557110 146 </strong>
147 </td>
0337d704 148 <td>
11ed26e5 149 <input type="checkbox" value="{$e->email}" {if $e->sufficient}class="active_email"{/if}
b9dcbddd 150 {if $e->active}checked="checked"{/if}
151 {if $smarty.foreach.redirect.total eq 1}disabled="disabled"{/if}
6df558fd 152 onchange="updateRedirect(this.checked, '{$e->email}')" /></td>
0337d704 153 <td>
11ed26e5 154 {if $e->has_rewrite()}
5ff3f06b 155 <select onchange="Ajax.update_html(null,'emails/redirect/rewrite/{$e->email}/'+this.value, redirectUpdate)">
0337d704 156 <option value=''>--- aucune ---</option>
a8c73061 157 {assign var=dom1 value=#globals.mail.domain#}
158 {assign var=dom2 value=#globals.mail.domain2#}
0337d704 159 {foreach from=$alias item=a}
a8c73061 160 <option {if $e->rewrite eq "`$a.alias`@`$dom1`"}selected='selected'{/if}
d7dd70be 161 value='{$a.alias}@{#globals.mail.domain#}'>{$a.alias}@{#globals.mail.domain#}</option>
a8c73061 162 <option {if $e->rewrite eq "`$a.alias`@`$dom2`"}selected='selected'{/if}
d7dd70be 163 value='{$a.alias}@{#globals.mail.domain2#}'>{$a.alias}@{#globals.mail.domain2#}</option>
0337d704 164 {/foreach}
165 </select>
11ed26e5
VZ
166 {else}
167 <em>pas de réécriture</em>
168 {/if}
0337d704 169 </td>
b679ad80 170 <td>
11ed26e5 171 {if $e->is_removable()}
917b5172 172 <a href="emails/redirect/remove/{$e->email}"
173 class="remove_email"
174 onclick="return removeRedirect(this, &quot;{$e->email}&quot;);" >
175 {icon name=cross title="Supprimer"}
bac1e60a 176 </a>
afde0a3a
VZ
177 {else}
178 {if $e->sufficient}<span class="remove_email"></span>{/if}
179 <a href="emails/redirect#{$e->email}">{icon name=information title="Plus d'informations"}</a>
11ed26e5 180 {/if}
bac1e60a 181 </td>
0337d704 182 </tr>
183 {/foreach}
1aef801a 184 <tr class="{cycle values="pair,impair"}"><td colspan="4">
b7582015 185 <form action="emails/redirect" method="post">
186 <div>
917b5172 187 &nbsp;<br />
e8439508 188 Ajouter une adresse email&nbsp;:
917b5172 189 <input type="text" size="35" maxlength="60" name="email" value="" />
190 &nbsp;&nbsp;<input type="submit" value="ajouter" name="emailop" />
b7582015 191 </div>
192 </form>
1aef801a 193 </td></tr>
0337d704 194 </table>
d4a9e308 195 <script type="text/javascript">activeEnable(); showRemove();</script>
0337d704 196 </div>
3b83212e 197{if $panne}
dc557110 198<p class="smaller">
b832310a 199 <strong>
200 {icon name=error title="En panne"}
db9c3838 201 <a href="Xorg/Pannes">Panne&nbsp;:</a>
b832310a 202 </strong>
a7de4ef7 203 Les adresses marquées de cette icône sont des adresses de redirection pour lesquelles une panne
204 a été détectée. Si le problème persiste, la redirection vers ces adresses sera désactivée.
b832310a 205</p>
3b83212e 206{/if}
207{if $erreur}
b832310a 208<p class="smaller">
209 <strong>
210 {icon name=error title="En panne"}
db9c3838 211 <a href="Xorg/Pannes" style="color: #f00">Panne durable&nbsp;:</a>
b832310a 212 </strong>
a7de4ef7 213 Les adresses en rouge sont des adresses qui ont été désactivées en raison d'un grand nombre de pannes. Si tu penses que
214 le problème est résolu, tu peux les réactiver, mais l'adresse sera redésactivée si les problèmes persistent.
dc557110 215</p>
3b83212e 216{/if}
edbf87a7
FB
217{if $smarty.session.mx_failures|@count}
218<fieldset>
219 <legend>{icon name=error} Des problèmes sont actuellement recontrés sur tes redirections suivantes</legend>
220 {foreach from=$smarty.session.mx_failures item=mail}
221 <div>
222 <span class="erreur">{$mail.mail}</span>
223 <div class="explication">{$mail.text}</div>
224 </div>
225 {/foreach}
226</fieldset>
227{/if}
1aef801a 228
afde0a3a 229{if #globals.mailstorage.googleapps_active# or #globals.mailstorage.imap_active# or hasPerm('admin') or $googleapps}
aab4661d 230<h1>Tes comptes de stockage de courrier</h1>
bb0727ea 231{/if}
afde0a3a 232{if #globals.mailstorage.imap_active# or hasPerm('admin')}
aab4661d
VZ
233<p>
234 Polytechnique.org te propose de conserver les mails que tu reçois, pendant une durée limitée (environ 30 jours).
235 Grâce à ce service, tu disposes d'une sauvegarde de tes mails en secours, au cas où, par exemple, tu effacerais
236 un mail par erreur.<br />
237 <strong>Attention :</strong> il ne s'agit que d'un service de secours, dont la disponibilité n'est pas garantie.
238</p>
239
240<table class="bicol" summary="Compte de stockage">
afde0a3a
VZ
241 <col width="55%" />
242 <col width="45%" />
aab4661d
VZ
243 <tr>
244 <th colspan="2">Compte de stockage</th>
245 </tr>
246 <tr class="pair">
247 <td>
bb0727ea 248 <a href="Xorg/IMAP">
aab4661d
VZ
249 <strong>Accès de secours aux emails (IMAP)</strong>
250 </a><br />Hébergé par Polytechnique.org
251 </td>
bb0727ea 252 <td style="text-align: center; vertical-align: middle">
afde0a3a 253 <a href="emails/redirect#line_imap">Voir l'état de la redirection vers l'IMAP</a>
aab4661d
VZ
254 </td>
255 </tr>
256</table>
fb31ee6b 257{/if}
aab4661d 258
afde0a3a 259{if #globals.mailstorage.googleapps_active# or hasPerm('admin') or $googleapps}
bb0727ea
VZ
260<br />
261<p>
262 Grâce à un partenariat avec Google, Polytechnique.org te propose également un compte
263 <b>Google Apps</b>, qui te permet de disposer des services Google (GMail pour
264 tes emails, Google Calendar, Google Docs, ...) sur une adresse polytechnique.org.
265</p>
266
267<table class="bicol" summary="Compte de stockage" id="googleapps">
afde0a3a
VZ
268 <col width="55%" />
269 <col width="45%" />
bb0727ea
VZ
270 <tr>
271 <th colspan="2">Compte de stockage</th>
272 </tr>
273 <tr class="pair">
274 {if $googleapps eq 'active'}
275 <td>
276 <a href="googleapps">
afde0a3a 277 <strong>Compte GMail / Google Apps</strong>
bb0727ea
VZ
278 </a><br />Hébergé par Google
279 </td>
280 <td style="text-align: center; vertical-align: middle">
afde0a3a
VZ
281 Ton compte Google Apps est actif.<br />
282 <a href="emails/redirect#line_googleapps">Voir l'état de la redirection vers GMail</a>
bb0727ea
VZ
283 </td>
284 {else}
285 <td colspan="2">
286 {if $googleapps eq 'disabled'}
287 Ton compte Google Apps est actuellement inactif.<br />
288 {else}
289 Tu n'as pas encore de compte Google Apps sur Polytechnique.org.<br />
290 {/if}
291 <a href="googleapps">Plus d'informations &hellip;</a>
292 </td>
293 {/if}
294 </tr>
295</table>
296{/if}
297
3b83212e 298{if $eleve}
a7de4ef7 299<h1>Pour les Élèves (non encore diplômés)</h1>
1aef801a 300<p>
a7de4ef7 301 L'X te fournit aussi une adresse à vie en <strong>«prenom.nom»@polytechnique.edu</strong> qui par défaut est
302 une redirection vers «login»@poly.polytechnique.fr. <a href="https://www.mail.polytechnique.edu/">
1aef801a 303 Tu peux modifier cette redirection</a> et la faire pointer vers ton adresse
304 {$smarty.session.forlife}@{#globals.mail.domain#} (attention, cela demande de la concentration).
305</p>
306<p>
a7de4ef7 307 Si tu utilises le service POP de poly pour récupérer tes mails dans ton logiciel de courrier,
e8439508 308 l'équipe de Polytechnique.org te conseille de rediriger&nbsp;:
1aef801a 309</p>
310<ul>
483fb312 311 <li>«prenom.nom»@polytechnique.edu vers {$smarty.session.forlife}@{#globals.mail.domain#}&nbsp;;</li>
312 <li>{$smarty.session.forlife}@{#globals.mail.domain#} vers «login»@poly.polytechnique.fr.</li>
1aef801a 313</ul>
425f6f37 314<p>
a7de4ef7 315 Attention à ne pas faire une boucle quand tu manipules tes redirections ! Tes emails seraient
316 alors perdus, jusqu'à ce que tu règles le problème.
425f6f37 317</p>
3b83212e 318{/if}
1aef801a 319
a7de4ef7 320{* vim:set et sw=2 sts=2 sws=2 enc=utf-8: *}