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