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