Adds XSRF protection to the Core modue.
[platal.git] / templates / emails / redirect.tpl
index e642d44..83cf386 100644 (file)
@@ -1,6 +1,6 @@
 {**************************************************************************}
 {*                                                                        *}
-{*  Copyright (C) 2003-2007 Polytechnique.org                             *}
+{*  Copyright (C) 2003-2008 Polytechnique.org                             *}
 {*  http://opensource.polytechnique.org/                                  *}
 {*                                                                        *}
 {*  This program is free software; you can redistribute it and/or modify  *}
@@ -41,7 +41,7 @@
     Tes adresses de redirection
   </h1>
   <p>
-  Tu configures ici les adresses emails vers lesquelles tes adresses (listées ci-dessous) sont dirigées :
+  Tu configures ici les adresses emails vers lesquelles tes adresses (listées ci-dessous) sont dirigées&nbsp;:
   </p>
   <ul>
     {if $melix}
@@ -66,7 +66,7 @@
   </p>
   <p>
     Enfin, la <strong>réécriture</strong> consiste à substituer à ton adresse email habituelle
-    (adresse wanadoo, yahoo, free, ou autre) ton adresse {#globals.mail.domain#} ou
+    (adresse gmail, orange, free, ou autre) ton adresse {#globals.mail.domain#} ou
     {#globals.mail.domain2#} dans l'adresse d'expédition de tes messages, lorsque le courrier
     passe par nos serveurs. Ceci arrive lorsque tu écris à un camarade sur son adresse {#globals.mail.domain#} ou
     {#globals.mail.domain2#}, ou lorsque tu utilises notre
       var remove = $(".active_email:checked");
       if (remove.length <= 1) {
         remove.attr("disabled", "disabled");
+        remove.parent('td').parent('tr').children('td').children('.remove_email').hide();
       } else {
         remove.removeAttr("disabled");
+        $('.remove_email').show();
       }
     }
 
           $.get(link.href, {},function() {
             $('tr[@id=line_' + email.replace('@', '_at_') + ']').remove();
             showRemove();
+            activeEnable();
           });
         }
         return false;
         }
     }
 
+    function updateRedirect(checked, email)
+    {
+        activeEnable();
+        Ajax.update_html(null, 'emails/redirect/' + (checked ? '' : 'in') + 'active/' + email, redirectUpdate);
+    }
+
     {/literal}
   //]]></script>
   {javascript name="jquery"}
   <div class="center">
     <table class="bicol" summary="Adresses de redirection">
       <tr>
-        <th>Email</th>
+        <th>Redirection</th>
         <th>Actif</th>
         <th>Réécriture</th>
         <th>&nbsp;</th>
           <strong>
             {if $e->broken}<span class="erreur">{assign var="erreur" value="1"}{/if}
             {if $e->panne neq '0000-00-00'}{assign var="panne" value="1"}{icon name=error title="En panne"}{/if}
-            {$e->email}
+            {$e->display_email}
             {if $e->broken}</span>{/if}
           </strong>
         </td>
         <td>
-          <input type="checkbox" value="{$e->email}" class="active_email"
+          <input type="checkbox" value="{$e->email}" {if $e->sufficient}class="active_email"{/if}
                  {if $e->active}checked="checked"{/if}
                  {if $smarty.foreach.redirect.total eq 1}disabled="disabled"{/if}
-                 onchange="Ajax.update_html(null,'{$globals->baseurl}/emails/redirect/'+(this.checked?'':'in')+'active/{$e->email}', redirectUpdate)" /></td>
+                 onchange="updateRedirect(this.checked, '{$e->email}')" /></td>
         <td>
+          {if $e->has_rewrite()}
           <select onchange="Ajax.update_html(null,'emails/redirect/rewrite/{$e->email}/'+this.value, redirectUpdate)">
             <option value=''>--- aucune ---</option>
             {assign var=dom1 value=#globals.mail.domain#}
               value='{$a.alias}@{#globals.mail.domain2#}'>{$a.alias}@{#globals.mail.domain2#}</option>
             {/foreach}
           </select>
+          {else}
+          <em>pas de réécriture</em>
+          {/if}
         </td>
         <td>
+          {if $e->is_removable()}
           <a href="emails/redirect/remove/{$e->email}"
              class="remove_email"
              onclick="return removeRedirect(this, &quot;{$e->email}&quot;);" >
             {icon name=cross title="Supprimer"}
           </a>
+          {else}
+          {if $e->sufficient}<span class="remove_email"></span>{/if}
+          <a href="emails/redirect#{$e->email}">{icon name=information title="Plus d'informations"}</a>
+          {/if}
         </td>
       </tr>
       {/foreach}
-      <script type="text/javascript">activeEnable(); showRemove();</script>
       <tr class="{cycle values="pair,impair"}"><td colspan="4">
         <form action="emails/redirect" method="post">
         <div>
           &nbsp;<br />
-          Ajouter une adresse email :
+          Ajouter une adresse email&nbsp;:
           <input type="text" size="35" maxlength="60" name="email" value="" />
           &nbsp;&nbsp;<input type="submit" value="ajouter" name="emailop" />
+          {xsrf_token_field}
         </div>
         </form>
       </td></tr>
     </table>
+    <script type="text/javascript">showRemove(); activeEnable();</script>
   </div>
 {if $panne}
 <p class="smaller">
 </fieldset>
 {/if}
 
+{if #globals.mailstorage.googleapps_active# or #globals.mailstorage.imap_active# or hasPerm('admin') or $googleapps}
+<h1>Tes comptes de stockage de courrier</h1>
+{/if}
+{if #globals.mailstorage.imap_active# or hasPerm('admin')}
+<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">
+  <col width="55%" />
+  <col width="45%" />
+  <tr>
+    <th colspan="2">Compte de stockage</th>
+  </tr>
+  <tr class="pair">
+    <td>
+      <a href="Xorg/IMAP">
+        <strong>Accès de secours aux emails (IMAP)</strong>
+      </a><br />Hébergé par Polytechnique.org
+    </td>
+    <td style="text-align: center; vertical-align: middle">
+      <a href="emails/redirect#line_imap">Voir l'état de la redirection vers l'IMAP</a>
+    </td>
+  </tr>
+</table>
+{/if}
+
+{if #globals.mailstorage.googleapps_active# or hasPerm('admin') or $googleapps}
+<br />
+<p>
+  Grâce à un partenariat avec Google, Polytechnique.org te propose également un compte
+  <b>Google Apps</b>, qui te permet de disposer des services Google (GMail pour
+  tes emails, Google Calendar, Google Docs, ...) sur une adresse polytechnique.org.
+</p>
+
+<table class="bicol" summary="Compte de stockage" id="googleapps">
+  <col width="55%" />
+  <col width="45%" />
+  <tr>
+    <th colspan="2">Compte de stockage</th>
+  </tr>
+  <tr class="pair">
+    {if $googleapps eq 'active'}
+    <td>
+      <a href="googleapps">
+        <strong>Compte Google Apps / Polytechnique.org</strong>
+      </a><br />Hébergé par Google
+    </td>
+    <td style="text-align: center; vertical-align: middle">
+      Ton compte Google Apps est actif.<br />
+      <a href="emails/redirect#line_googleapps">Voir l'état de la redirection vers GMail</a>
+    </td>
+    {else}
+    <td colspan="2">
+      {if $googleapps eq 'disabled'}
+      Ton compte Google Apps est actuellement inactif.<br />
+      {else}
+      Tu n'as pas encore de compte Google Apps pour Polytechnique.org.<br />
+      {/if}
+      <a href="googleapps">Plus d'informations &hellip;</a>
+    </td>
+    {/if}
+  </tr>
+</table>
+{/if}
+
 {if $eleve}
 <h1>Pour les Élèves (non encore diplômés)</h1>
 <p>
 </p>
 <p>
   Si tu utilises le service POP de poly pour récupérer tes mails dans ton logiciel de courrier,
-  l'équipe de Polytechnique.org te conseille de rediriger :
+  l'équipe de Polytechnique.org te conseille de rediriger&nbsp;:
 </p>
 <ul>
   <li>«prenom.nom»@polytechnique.edu vers {$smarty.session.forlife}@{#globals.mail.domain#}&nbsp;;</li>