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