Cleanup email management: move virtual addresses in their own box.
[platal.git] / templates / admin / utilisateurs.tpl
1 {**************************************************************************}
2 {*                                                                        *}
3 {*  Copyright (C) 2003-2008 Polytechnique.org                             *}
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
24 {if $smarty.post.u_kill_conf}
25 <form method="post" action="admin/user">
26   {xsrf_token_field}
27   <div class="center">
28     <input type="hidden" name="user_id" value="{$smarty.request.user_id}" />
29     Confirmer la suppression de {$smarty.request.user_id}&nbsp;&nbsp;
30     <input type="submit" name="u_kill" value="continuer" />
31   </div>
32 </form>
33 {elseif $user}
34 {literal}
35
36 <script type="text/javascript">
37 //<![CDATA[
38 function doEditUser() {
39   document.forms.auth.hashpass.value = hash_encrypt(document.forms.edit.password.value);
40   document.forms.auth.password.value = "";
41   document.forms.auth.submit();
42 }
43
44 function del_alias(alias) {
45   document.forms.alias.del_alias.value = alias;
46   document.forms.alias.submit();
47 }
48
49 function del_fwd(fwd) {
50   document.forms.fwds.del_fwd.value = fwd;
51   document.forms.fwds.submit();
52 }
53 function act_fwd(fwd, activate) {
54   if (activate)
55     document.forms.fwds.activate_fwd.value = fwd;
56   else
57     document.forms.fwds.deactivate_fwd.value = fwd;
58   document.forms.fwds.submit();
59 }
60 function clean_fwd(fwd) {
61   document.forms.fwds.clean_fwd.value = fwd;
62   document.forms.fwds.submit();
63 }
64 function ban_write()
65 {
66     document.forms.bans.write_perm.value = "!xorg.*";
67 }
68 function ban_read()
69 {
70     document.forms.bans.read_perm.value = "!xorg.*";
71 }
72
73 $(document).ready(function() {
74   $('#tabs > ul').tabs();
75   $('.ui-tabs-nav li').width('33%')
76     .click(function() { $(this).children('a').click() });
77 });
78
79 // ]]>
80 </script>
81 {/literal}
82
83 <div id="tabs">
84 <ul>
85   <li><a href="{$platal->pl_self()}#account"><span >Compte</span></a></li>
86   <li><a href="{$platal->pl_self()}#emails"><span>Emails</span></a></li>
87   <li><a href="{$platal->pl_self()}#forums"><span>Forums</span></a></li>
88 </ul>
89
90 <div id="account">
91 <form id="auth" method="post" action="admin/user/{$user->login()}">
92   {xsrf_token_field}
93   <h1>Informations sur le compte</h1>
94   <p class="smaller">
95     Dernière connexion le <strong>{$lastlogin|date_format:"%d %B %Y, %T"}</strong>
96     depuis <strong>{$host}</strong>.
97   </p>
98
99   <table class="tinybicol">
100     <tr>
101       <th colspan="2">
102         <div style="float: right; text-align: right">
103           Inscrit le {$user->registration_date|date_format}
104         </div>
105         <div style="float: left; text-align: left">
106           {icon name=user_gray} {$mr.hruid} (uid {$user->id()})
107         </div>
108         <input type="hidden" name="uid" value="{$user->id()}" />
109       </th>
110     </tr>
111     <tr>
112       <td class="titre">Nom complet</td>
113       <td><input type="text" name="full_name" maxlength="255" value="{$user->fullName()}" /></td>
114     </tr>
115     <tr>
116       <td class="titre">Nom affiché</td>
117       <td><input type="text" name="display_name" maxlength="255" value="{$user->displayName()}" /></td>
118     </tr>
119     <tr>
120       <td class="titre">Sexe</td>
121       <td>
122         <label>femme <input type="radio" name="sex" value="female" {if $user->isFemale()}checked="checked"{/if} /></label>
123         <label><input type="radio" name="sex" value="male" {if !$user->isFemale()}checked="checked"{/if} /> homme</label>
124       </td>
125     </tr>
126     <tr class="impair">
127       <td class="titre">Mot de passe</td>
128       <td>
129         <div style="float: left">
130           <input type="text" name="newpass_clair" size="10" maxlength="255" value="********" />
131           <input type="hidden" name="hashpass" value="" />
132         </div>
133         <div style="float: left; margin-top: 5px;">
134           {checkpasswd prompt="newpass_clair" submit="dummy_none"}
135         </div>
136       </td>
137     </tr>
138     <tr class="impair">
139       <td class="titre">Mot de passe SMTP</td>
140       <td>
141         <div style="float: left">
142           <input type="password" name="weak_password" size="10" maxlength="256" value="" />
143           {if $user->weak_access}
144           <input type="submit" name="disable_weak_access" value="Supprimer" />
145           {/if}
146         </div>
147       </td>
148     </tr>
149     <tr class="impair">
150       <td class="titre">Accès RSS</td>
151       <td>
152         <label>
153           <input type="checkbox" name="token_access" {if $user->token_access}checked="checked"{/if} value="1" />
154           activer l'accès
155         </label>
156       </td>
157     </tr>
158     <tr class="impair">
159       <td class="titre">Skin</td>
160       <td>
161         <select name="skin">
162           <option value="" {if !$user->skin}selected="selected"{/if}>Aucune (défaut du système)</option>
163           {iterate from=$skins item=skin}
164           <option value="{$skin.id}" {if $user->skin eq $skin.id}selected="selected"{/if}>{$skin.name}</option>
165           {/iterate}
166         </select>
167       </td>
168     </tr>
169     <tr class="pair">
170       <td class="titre">Etat du compte</td>
171       <td>
172         <select name="state">
173           <option value="pending" {if $user->state eq 'pending'}selected="selected"{/if}>pending (Non-inscrit)</option>
174           <option value="active" {if $user->state eq 'active'}selected="selected"{/if}>active (Inscrit, peut se logguer)</option>
175           <option value="disabled" {if $user->state eq 'disabled'}selected="selected"{/if}>disabled (Inscrit, accès interdit)</option>
176         </select><br />
177         <label>
178           <input type="checkbox" name="is_admin" value="1" {if $user->is_admin}checked="checked"{/if} />
179           administrateur du site
180         </label>
181       </td>
182     </tr>
183     <tr class="pair">
184       <td class="titre">Type de compte</td>
185       <td>
186         <select name="type">
187           {iterate from=$account_types item=type}
188           <option value="{$type.type}" {if $user->type eq $type.type}selected="selected"{/if}>{$type.type} ({$type.perms})</option>
189           {/iterate}
190         </select>
191         <a href="admin/account/types">gérer</a>
192       </td>
193     </tr>
194     <tr class="pair">
195       <td class="titre">
196         Surveillance
197       </td>
198       <td>
199         <label><input type="checkbox" name="watch" {if $user->watch}checked="checked"{/if} value="1" />
200         Surveiller l'activité de ce compte</label><br />
201         <span class="smaller">Cette option permet d'avoir des logs complets de l'activité
202         du compte via le logger, et d'être alerté lors des connexions de l'utilisateur.</span>
203       </td>
204     </tr>
205     <tr class="pair">
206       <td class="titre">
207         Commentaire
208       </td>
209       <td>
210         <input type="text" name="comment" size="40" maxlength="64" value="{$user->comment}" />
211       </td>
212     </tr>
213   </table>
214   <div class="center">
215     <input type="submit" name="update_account" value="Mettre à jour" /><br />
216     <input type="submit" name="su_account" value="Prendre l'identité" />
217     <input type="submit" name="log_account" value="Consulter les logs" />
218   </div>
219 </form>
220 </div>
221
222 <!--
223   <h1>Informations sur la fiche</h1>
224   <table cellspacing="0" cellpadding="2" class="tinybicol">
225     <tr>
226       <th colspan="2">
227         <div style="float: right; text-align: right">
228           Matricule = {$mr.matricule}<br />
229           Matricule AX = {$mr.matricule_ax}
230         </div>
231         <div style="float: left; text-align: left">
232           UID = {$mr.user_id}<br />
233           Inscription = {$mr.date_ins|date_format}
234         </div>
235         <input type="hidden" name="user_id" value="{$mr.user_id}" />
236       </th>
237     </tr>
238     <tr class="pair">
239       <td class="titre">
240         Nom
241       </td>
242       <td>
243         <input type="text" name="nomN" size="20" maxlength="255" value="{$mr.nom}" />
244       </td>
245     </tr>
246     <tr class="pair">
247       <td class="titre">
248         Nom d'usage
249       </td>
250       <td>
251         <input type="text" name="nomusageN" size="20" maxlength="255" value="{$mr.nom_usage}" />
252       </td>
253     </tr>
254     <tr class="pair">
255       <td class="titre">
256         Prénom
257       </td>
258       <td>
259         <input type="text" name="prenomN" size="20" maxlength="30" value="{$mr.prenom}" />
260       </td>
261     </tr>
262     <tr class="pair">
263       <td class="titre">
264         Sexe
265       </td>
266       <td>
267         <label>femme <input type="radio" name="sexeN" {if $mr.sexe}checked="checked"{/if} value='1'/></label>
268         <label><input type="radio" name="sexeN" {if !$mr.sexe}checked="checked"{/if} value='0'/> homme</label>
269       </td>
270     </tr>
271     <tr class="pair">
272       <td class="titre">
273         Droits
274       </td>
275       <td>
276         <select name="permsN">
277           <option value="user" {if $mr.perms eq "user"}selected="selected"{/if}>user</option>
278           <option value="admin" {if $mr.perms eq "admin"}selected="selected"{/if}>admin</option>
279           <option value="pending" {if $mr.perms eq "pending"}selected="selected"{/if}>pending</option>
280           <option value="disabled" {if $mr.perms eq "disabled"}selected="selected"{/if}>disabled</option>
281         </select>
282       </td>
283     </tr>
284     {if $mr.perms neq 'pending'}
285     <tr class="pair">
286       <td class="titre">
287         {if $mr.naiss_err}<span class="erreur">{/if}
288         Date de naissance
289         {if $mr.naiss_err}</span>{/if}
290       </td>
291       <td>
292         <input type="text" name="naissanceN" size="12" maxlength="10" value="{$mr.naissance}" />
293         {if $mr.naissance_ini neq '0000-00-00' && $mr.naissance neq $mr.naissance_ini}
294           <span class="erreur smaller">({icon name=error}Date de naissance connue&nbsp;: {$mr.naissance_ini})</span>
295         {elseif $mr.naiss_err}
296           <span class="erreur smaller">({icon name=error}Date de naissance incohérente)</span>
297         {/if}
298       </td>
299     </tr>
300     {/if}
301     <tr class="pair">
302       <td class="titre">
303         Date de décès
304       </td>
305       <td>
306         <input type="text" name="decesN" size="12" maxlength="10" value="{$mr.deces}" />
307       </td>
308     </tr>
309     <tr class="pair">
310       <td class="titre">
311         Promo
312       </td>
313       <td>
314         <input type="text" name="promoN" size="4" maxlength="4" value="{$mr.promo}" />
315       </td>
316     </tr>
317     {if $mr.perms eq 'pending'}
318     <tr class="center">
319       <td colspan="2">
320         <input type="hidden" name="naissanceN" value="{$mr.naissance}" />
321         <input onclick="doEditUser(); return true;" type="submit" name="u_edit" value="UPDATE" />
322       </td>
323     </tr>
324     {else}
325     <tr class="center">
326       <td>
327         <a href="profile/{$mr.hruid}" class="popup2">[Voir fiche]</a>
328       </td>
329       <td>
330         <input onclick="doEditUser(); return true;" type="submit" name="u_edit" value="UPDATE" />
331       </td>
332     </tr>
333     <tr class="center">
334       <td>
335         <a href="admin/trombino/{$mr.user_id}">[Trombino]</a>
336       </td>
337       <td>
338         <input type="submit" name="u_kill_conf" value="Désinscrire" />
339       </td>
340     </tr>
341     {/if}
342   </table>
343 </form>
344 {if $mr.perms neq 'pending'}
345 <p>
346 Ne pas utiliser [Désinscrire] si le but est d'exclure la personne.
347 Pour ceci changer ses permissions en 'disabled'.
348 </p>
349 -->
350
351 <div id="emails">
352 <h1>Gestion de l'adresse X.org {$user->login()}</h1>
353
354 <form id="alias" method="post" action="admin/user">
355   {xsrf_token_field}
356   <table class="tinybicol" cellpadding="2" cellspacing="0">
357     <tr>
358       <th class="alias" colspan="3">
359         Alias email de l'utilisateur
360       </th>
361     </tr>
362     {iterate from=$aliases item=a}
363     <tr class="{cycle values="impair,pair"}">
364       <td>
365         <input type="radio" name='best' {if $a.best}checked="checked"{/if} value='{$a.alias}' onclick="this.form.submit()" />
366       </td>
367       <td>
368         {if $a.for_life}<strong>{$a.alias}</strong>{else}{$a.alias}{/if}
369         {if $a.expire}<span class='erreur'>(expire le {$a.expire|date_format})</span>{/if}
370       </td>
371       {if $a.for_life}
372       <td>garanti à vie*</td>
373       {else}
374       <td class="action">
375         <a href="javascript:del_alias('{$a.alias}')">delete</a>
376       </td>
377       {/if}
378     </tr>
379     {/iterate}
380     <tr class="{cycle values="impair,pair"}">
381       <td colspan="2" class="detail">
382         <input type="text" name="email" size="29" maxlength="60" value="" />
383       </td>
384       <td class="action">
385         <input type="hidden" name="user_id" value="{$mr.user_id}" />
386         <input type="hidden" name="del_alias" value="" />
387         <input type="submit" name="add_alias" value="Ajouter" />
388       </td>
389     </tr>
390     <tr class="{cycle values="impair,pair"}">
391       <td colspan="3" class="desc">
392         <strong>* à ne modifier qu'avec l'accord express de l'utilisateur !!!</strong>
393       </td>
394     </tr>
395   </table>
396 </form>
397
398 <br />
399
400 <form id="fwds" method="post" action="admin/user/{$user->login()}#fwds">
401   {xsrf_token_field}
402   <table class="bicol" cellpadding="2" cellspacing="0">
403     <tr>
404       <th colspan="4">
405         Redirections
406       </th>
407     </tr>
408     {assign var=actives value=false}
409     {assign var=disabled value=false}
410     {foreach item=mail from=$emails}
411     {cycle assign=class values="impair,pair"}
412     <tr class="{$class}">
413       {if $mail->active && $mail->has_disable()}
414         {assign var=actives value=true}
415       {elseif $mail->disabled && $mail->has_disable()}
416         {assign var=disabled value=true}
417       {/if}
418       <td class="titre">
419         {if $mail->active}active{elseif $mail->disabled}suspendue{/if}
420       </td>
421       <td>
422         <span class="smaller">
423           {if !$mail->disabled}
424           <a href="javascript:act_fwd('{$mail->email}',{if $mail->active}false{else}true{/if})">
425             {if $mail->active}des{elseif $mail->broken}ré{/if}activer
426           </a>
427           {/if}
428         </span>
429       </td>
430       <td>
431         {if $mail->broken}<span style="color: #f00">{/if}
432         {if $mail->email == 'googleapps'}<a href="admin/googleapps/user/{$mr.hruid}">{/if}
433         {$mail->display_email}
434         {if $mail->email == 'googleapps'}</a>{/if}
435         {if $mail->broken}<em> (en panne)</em></span>{/if}
436       </td>
437       <td class="action">
438         {if $mail->is_removable()}
439         <a href="javascript:del_fwd('{$mail->email}')">delete</a>
440         {/if}
441       </td>
442     </tr>
443     {if $mail->panne && $mail->panne neq "0000-00-00"}
444     <tr class="{$class}">
445       <td colspan="3" class="smaller" style="color: #f00">
446         {icon name=error title="Panne"}
447         Panne de {$mail->display_email} le {$mail->panne|date_format}
448         {if $mail->panne neq $mail->last}confirmée le {$mail->last|date_format}{/if}
449       </td>
450       <td class="action">
451         <a href="javascript:clean_fwd('{$mail->email}')">effacer les pannes</a>
452       </td>
453     </tr>
454     {/if}
455     {/foreach}
456     {cycle assign=class values="impair,pair"}
457     <tr class="{$class}">
458       <td class="titre" colspan="2">
459         Ajouter une adresse
460       </td>
461       <td>
462         <input type="text" name="email" size="29" maxlength="60" value="" />
463       </td>
464       <td class="action">
465         <input type="hidden" name="user_id" value="{$mr.user_id}" />
466         <input type="hidden" name="del_fwd" value="" />
467         <input type="hidden" name="clean_fwd" value="" />
468         <input type="hidden" name="activate_fwd" value="" />
469         <input type="hidden" name="deactivate_fwd" value="" />
470         <input type="submit" name="add_fwd" value="Ajouter" />
471       </td>
472     </tr>
473     <tr class="{$class}">
474       <td colspan="4" class="center">
475         {if $actives}
476         <input type="submit" name="disable_fwd" value="Désactiver la redirection des emails" />
477         {/if}
478         {if $disabled}
479         <input type="submit" name="enable_fwd" value="Réactiver la redirection des emails" />
480         {/if}
481       </td>
482     </tr>
483   </table>
484 </form>
485
486 {javascript name="ajax"}
487 {test_email hruid=$user->login()}
488
489 <h1>Autres adresses de l'utilisateur</h1>
490
491 <table class="tinybicol">
492   <th>Virtual aliases auquel l'utilisateur appartient</th>
493   {foreach from=$virtuals item=virtual}
494   <tr class="{cycle values="impair,pair"}">
495     <td>{$virtual}</td>
496   </tr>
497   {/foreach}
498 </table>
499
500 </div>
501
502 <div id="forums">
503
504 <h1>Gestion de l'accès au forums de {$user->login()}</h1>
505
506 <form id="bans" method="post" action="admin/user/{$user->login()}">
507   {xsrf_token_field}
508   <table cellspacing="0" cellpadding="2" class="tinybicol">
509     <tr>
510       <th colspan="4">
511         Permissions sur les forums
512       </th>
513     </tr>
514     <tr class="impair">
515       <td class="titre">
516         Poster
517       </td>
518       <td>
519         <input type="text" name="write_perm" size="32" maxlength="255" value="{$bans.write_perm}" />
520       </td>
521       <td class="action">
522         <a href="javascript:ban_write()">Bannir</a>
523       </td>
524     </tr>
525     <tr class="pair">
526       <td class="titre">
527         Lire
528       </td>
529       <td>
530         <input type="text" name="read_perm" size="32" maxlength="255" value="{$bans.read_perm}" />
531       </td>
532       <td class="action">
533         <a href="javascript:ban_read()">Bannir</a>
534       </td>
535     </tr>
536     <tr class="impair">
537       <td class="titre">
538         Commentaire
539       </td>
540       <td colspan="2">
541         <input type="text" name="comment" size="40" maxlength="255" value="{$bans.comment}" />
542       </td>
543     </tr>
544     <tr class="center">
545       <td colspan="3">
546         <input type="hidden" name="user_id" value="{$mr.user_id}" />
547         <input type="submit" name="b_edit" value="Modifier" />
548       </td>
549     </tr>
550   </table>
551 </form>
552 </div>
553
554
555 {/if}
556 {/if}
557
558 {* vim:set et sw=2 sts=2 sws=2 enc=utf-8: *}