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