Can save changes from admin/user \o/.
[platal.git] / templates / admin / utilisateurs.tpl
index 07e7fe7..c68cf78 100644 (file)
@@ -1,6 +1,6 @@
 {**************************************************************************}
 {*                                                                        *}
-{*  Copyright (C) 2003-2007 Polytechnique.org                             *}
+{*  Copyright (C) 2003-2008 Polytechnique.org                             *}
 {*  http://opensource.polytechnique.org/                                  *}
 {*                                                                        *}
 {*  This program is free software; you can redistribute it and/or modify  *}
 {**************************************************************************}
 
 
-<h1>
-  Gestion des utilisateurs
-</h1>
-
-
 {if $smarty.post.u_kill_conf}
 <form method="post" action="admin/user">
+  {xsrf_token_field}
   <div class="center">
     <input type="hidden" name="user_id" value="{$smarty.request.user_id}" />
     Confirmer la suppression de {$smarty.request.user_id}&nbsp;&nbsp;
     <input type="submit" name="u_kill" value="continuer" />
   </div>
 </form>
-{else}
-
-<form method="post" action="admin/user">
-  <table class="tinybicol" cellspacing="0" cellpadding="2">
-    <tr>
-      <th>
-        Administrer
-      </th>
-    </tr>
-    {if !$smarty.request.login && !$mr.forlife}
-    <tr class="pair">
-      <td class="center">
-        Il est possible d'entrer ici n'importe quelle adresse mail : redirection, melix, ou alias.
-      </td>
-    </tr>
-    {/if}
-    <tr>
-      <td class="center">
-        <input type="text" name="login" size="40" maxlength="255" value="{$smarty.request.login|default:$mr.forlife}" />
-      </td>
-    </tr>
-    <tr>
-      <td class="center">
-        <input type="hidden" name="hashpass" value="" />
-        <input type="submit" name="select" value=" edit " /> &nbsp;&nbsp;
-        <input type="submit" name="suid_button" value=" su " />  &nbsp;&nbsp;
-        <input type="submit" name="ax_button" value=" AX " /> &nbsp;&nbsp;
-        <input type="submit" name="logs_button" value=" logs " />
-      </td>
-    </tr>
-  </table>
-</form>
-
-{if $mr}
-
-<p class="smaller">
-Derniére connexion le <strong>{$lastlogin|date_format:"%d %B %Y, %T"}</strong>
-depuis <strong>{$host}</strong>
-</p>
+{elseif $user}
 
 {literal}
 <script type="text/javascript">
@@ -103,37 +61,167 @@ function clean_fwd(fwd) {
   document.forms.fwds.clean_fwd.value = fwd;
   document.forms.fwds.submit();
 }
+function ban_write()
+{
+    document.forms.bans.write_perm.value = "!xorg.*";
+}
+function ban_read()
+{
+    document.forms.bans.read_perm.value = "!xorg.*";
+}
+
 // ]]>
 </script>
 {/literal}
 
-<form id="auth" method="post" action="admin/user">
-  <table cellspacing="0" cellpadding="2" class="tinybicol">
+<form id="auth" method="post" action="admin/user/{$user->login()}">
+  {xsrf_token_field}
+  <h1>Informations sur le compte</h1>
+  <p class="smaller">
+    Dernière connexion le <strong>{$lastlogin|date_format:"%d %B %Y, %T"}</strong>
+    depuis <strong>{$host}</strong>.
+  </p>
+
+  <table class="tinybicol">
     <tr>
       <th colspan="2">
         <div style="float: right; text-align: right">
-          Matricule = {$mr.matricule}<br />
-          Matricule AX = {$mr.matricule_ax}
+          Inscrit le {$user->registration_date|date_format}
         </div>
         <div style="float: left; text-align: left">
-          UID = {$mr.user_id}<br />
-          Inscription = {$mr.date_ins|date_format}
+          {icon name=user_gray} {$mr.hruid} (uid {$user->id()})
         </div>
-        <input type="hidden" name="user_id" value="{$mr.user_id}" />
+        <input type="hidden" name="uid" value="{$user->id()}" />
       </th>
     </tr>
+    <tr>
+      <td class="titre">Nom complet</td>
+      <td><input type="text" name="full_name" maxlength="255" value="{$user->fullName()}" /></td>
+    </tr>
+    <tr>
+      <td class="titre">Nom affiché</td>
+      <td><input type="text" name="display_name" maxlength="255" value="{$user->displayName()}" /></td>
+    </tr>
+    <tr>
+      <td class="titre">Sexe</td>
+      <td>
+        <label>femme <input type="radio" name="sex" value="female" {if $user->isFemale()}checked="checked"{/if} /></label>
+        <label><input type="radio" name="sex" value="male" {if !$user->isFemale()}checked="checked"{/if} /> homme</label>
+      </td>
+    </tr>
+    <tr class="impair">
+      <td class="titre">Mot de passe</td>
+      <td>
+        <div style="float: left">
+          <input type="text" name="newpass_clair" size="10" maxlength="255" value="********" />
+          <input type="hidden" name="hashpass" value="" />
+        </div>
+        <div style="float: left; margin-top: 5px;">
+          {checkpasswd prompt="newpass_clair" submit="dummy_none"}
+        </div>
+      </td>
+    </tr>
+    <tr class="impair">
+      <td class="titre">Mot de passe SMTP</td>
+      <td>
+        <div style="float: left">
+          <input type="password" name="weak_password" size="10" maxlength="256" value="" />
+          {if $user->weak_access}
+          <input type="submit" name="disable_weak_access" value="Supprimer" />
+          {/if}
+        </div>
+      </td>
+    </tr>
+    <tr class="impair">
+      <td class="titre">Accès RSS</td>
+      <td>
+        <label>
+          <input type="checkbox" name="token_access" {if $user->token_access}checked="checked"{/if} value="1" />
+          activer l'accès
+        </label>
+      </td>
+    </tr>
+    <tr class="impair">
+      <td class="titre">Skin</td>
+      <td>
+        <select name="skin">
+          <option value="" {if !$user->skin}selected="selected"{/if}>Aucune (défaut du système)</option>
+          {iterate from=$skins item=skin}
+          <option value="{$skin.id}" {if $user->skin eq $skin.id}selected="selected"{/if}>{$skin.name}</option>
+          {/iterate}
+        </select>
+      </td>
+    </tr>
+    <tr class="pair">
+      <td class="titre">Etat du compte</td>
+      <td>
+        <select name="state">
+          <option value="pending" {if $user->state eq 'pending'}selected="selected"{/if}>pending (Non-inscrit)</option>
+          <option value="active" {if $user->state eq 'active'}selected="selected"{/if}>active (Inscrit, peu se logguer)</option>
+          <option value="disabled" {if $user->state eq 'disabled'}selected="selected"{/if}>disabled (Inscrit, accès interdit)</option>
+        </select><br />
+        <label>
+          <input type="checkbox" name="is_admin" value="1" {if $user->is_admin}checked="checked"{/if} />
+          administrateur du site
+        </label>
+      </td>
+    </tr>
+    <tr class="pair">
+      <td class="titre">Type de compte</td>
+      <td>
+        <select name="type">
+          {iterate from=$account_types item=type}
+          <option value="{$type.type}" {if $user->type eq $type.type}selected="selected"{/if}>{$type.type} ({$type.perms})</option>
+          {/iterate}
+        </select>
+        <a href="admin/account/types">gérer</a>
+      </td>
+    </tr>
     <tr class="pair">
       <td class="titre">
-        Mot de passe
+        Surveillance
       </td>
       <td>
-        <input type="text" name="newpass_clair" size="10" maxlength="10" value="********" />
-        <input type="hidden" name="passw" size="32" maxlength="32" value="{$mr.password}" />
-        <input type="hidden" name="hashpass" value="" />
+        <label><input type="checkbox" name="watch" {if $user->watch}checked="checked"{/if} value="1" />
+        Surveiller l'activité de ce compte</label><br />
+        <span class="smaller">Cette option permet d'avoir des logs complets de l'activité
+        du compte via le logger, et d'être alerté lors des connexions de l'utilisateur.</span>
       </td>
     </tr>
     <tr class="pair">
       <td class="titre">
+        Commentaire
+      </td>
+      <td>
+        <input type="text" name="comment" size="40" maxlength="64" value="{$user->comment}" />
+      </td>
+    </tr>
+  </table>
+  <div class="center">
+    <input type="submit" name="update_account" value="Mettre à jour" /><br />
+    <input type="submit" name="su_account" value="Prendre l'identité" />
+    <input type="submit" name="log_account" value="Consulter les logs" />
+  </div>
+</form>
+
+<!--
+  <h1>Informations sur la fiche</h1>
+  <table cellspacing="0" cellpadding="2" class="tinybicol">
+    <tr>
+      <th colspan="2">
+        <div style="float: right; text-align: right">
+          Matricule = {$mr.matricule}<br />
+          Matricule AX = {$mr.matricule_ax}
+        </div>
+        <div style="float: left; text-align: left">
+          UID = {$mr.user_id}<br />
+          Inscription = {$mr.date_ins|date_format}
+        </div>
+        <input type="hidden" name="user_id" value="{$mr.user_id}" />
+      </th>
+    </tr>
+    <tr class="pair">
+      <td class="titre">
         Nom
       </td>
       <td>
@@ -161,8 +249,8 @@ function clean_fwd(fwd) {
         Sexe
       </td>
       <td>
-        femme <input type="radio" name="sexeN" {if $mr.sexe}checked="checked"{/if} value='1'/>
-        <input type="radio" name="sexeN" {if !$mr.sexe}checked="checked"{/if} value='0'/> homme
+        <label>femme <input type="radio" name="sexeN" {if $mr.sexe}checked="checked"{/if} value='1'/></label>
+        <label><input type="radio" name="sexeN" {if !$mr.sexe}checked="checked"{/if} value='0'/> homme</label>
       </td>
     </tr>
     <tr class="pair">
@@ -188,7 +276,7 @@ function clean_fwd(fwd) {
       <td>
         <input type="text" name="naissanceN" size="12" maxlength="10" value="{$mr.naissance}" />
         {if $mr.naissance_ini neq '0000-00-00' && $mr.naissance neq $mr.naissance_ini}
-          <span class="erreur smaller">({icon name=error}Date de naissance connue : {$mr.naissance_ini})</span>
+          <span class="erreur smaller">({icon name=error}Date de naissance connue&nbsp;: {$mr.naissance_ini})</span>
         {elseif $mr.naiss_err}
           <span class="erreur smaller">({icon name=error}Date de naissance incohérente)</span>
         {/if}
@@ -211,25 +299,6 @@ function clean_fwd(fwd) {
         <input type="text" name="promoN" size="4" maxlength="4" value="{$mr.promo}" />
       </td>
     </tr>
-    <tr class "impair">
-      <td class="titre">
-        Surveillance
-      </td>
-      <td>
-        <input type="checkbox" name="watchN" {if $mr.watch}checked="checked"{/if} />
-        Surveiller l'activité de ce compte<br />
-        <span class="smaller">Cette option permet d'avoir des logs complets de l'activité
-        du compte via le logger, et d'être alerté lors des connexions de l'utilisateur</span>
-      </td>
-    </tr>
-    <tr class="impair">
-      <td class="titre">
-        Commentaire
-      </td>
-      <td>
-        <input type="text" name="commentN" size="40" maxlength="64" value="{$mr.comment}" />
-      </td>
-    </tr>
     {if $mr.perms eq 'pending'}
     <tr class="center">
       <td colspan="2">
@@ -240,7 +309,7 @@ function clean_fwd(fwd) {
     {else}
     <tr class="center">
       <td>
-        <a href="profile/{$mr.forlife}" class="popup2">[Voir fiche]</a>
+        <a href="profile/{$mr.hruid}" class="popup2">[Voir fiche]</a>
       </td>
       <td>
         <input onclick="doEditUser(); return true;" type="submit" name="u_edit" value="UPDATE" />
@@ -263,10 +332,11 @@ Ne pas utiliser [Désinscrire] si le but est d'exclure la personne.
 Pour ceci changer ses permissions en 'disabled'.
 </p>
 <form id="alias" method="post" action="admin/user">
+  {xsrf_token_field}
   <table class="tinybicol" cellpadding="2" cellspacing="0">
     <tr>
       <th class="alias" colspan="3">
-        Alias e-mail
+        Alias email
       </th>
     </tr>
     {iterate from=$aliases item=a}
@@ -287,13 +357,13 @@ Pour ceci changer ses permissions en 'disabled'.
       {/if}
     </tr>
     {/iterate}
-    {iterate from=$virtuals item=virtual}
+    {foreach from=$virtuals item=virtual}
     <tr class="{cycle values="impair,pair"}">
       <td></td>
-      <td>{$virtual.alias}</td>
+      <td>{$virtual}</td>
       <td></td>
     </tr>
-    {/iterate}
+    {/foreach}
     <tr class="{cycle values="impair,pair"}">
       <td colspan="2" class="detail">
         <input type="text" name="email" size="29" maxlength="60" value="" />
@@ -306,29 +376,76 @@ Pour ceci changer ses permissions en 'disabled'.
     </tr>
   </table>
 </form>
+-->
 
-<p>
-<strong>* à ne modifier qu'avec l'accord express de l'utilisateur !!!</strong>
-</p>
+<p><strong>* à ne modifier qu'avec l'accord express de l'utilisateur !!!</strong></p>
+
+<form id="bans" method="post" action="admin/user/{$user->login()}">
+  {xsrf_token_field}
+  <table cellspacing="0" cellpadding="2" class="tinybicol">
+    <tr>
+      <th colspan="4">
+        Permissions sur les forums
+      </th>
+    </tr>
+    <tr class="impair">
+      <td class="titre">
+        Poster
+      </td>
+      <td>
+        <input type="text" name="write_perm" size="32" maxlength="255" value="{$bans.write_perm}" />
+      </td>
+      <td class="action">
+        <a href="javascript:ban_write()">Bannir</a>
+      </td>
+    </tr>
+    <tr class="pair">
+      <td class="titre">
+        Lire
+      </td>
+      <td>
+        <input type="text" name="read_perm" size="32" maxlength="255" value="{$bans.read_perm}" />
+      </td>
+      <td class="action">
+        <a href="javascript:ban_read()">Bannir</a>
+      </td>
+    </tr>
+    <tr class="impair">
+      <td class="titre">
+        Commentaire
+      </td>
+      <td colspan="2">
+        <input type="text" name="comment" size="40" maxlength="255" value="{$bans.comment}" />
+      </td>
+    </tr>
+    <tr class="center">
+      <td colspan="3">
+        <input type="hidden" name="user_id" value="{$mr.user_id}" />
+        <input type="submit" name="b_edit" value="Modifier" />
+      </td>
+    </tr>
+  </table>
+</form>
 
 {javascript name="ajax"}
-{test_email forlife=$mr.forlife}
+{test_email hruid=$user->login()}
 
-<form id="fwds" method="post" action="admin/user#fwds">
+<form id="fwds" method="post" action="admin/user/{$user->login()}#fwds">
+  {xsrf_token_field}
   <table class="bicol" cellpadding="2" cellspacing="0">
     <tr>
       <th colspan="4">
         Redirections
       </th>
     </tr>
-    {assign var=actives value=false} 
-    {assign var=disabled value=false} 
+    {assign var=actives value=false}
+    {assign var=disabled value=false}
     {foreach item=mail from=$emails}
     {cycle assign=class values="impair,pair"}
     <tr class="{$class}">
-      {if $mail->active}
+      {if $mail->active && $mail->has_disable()}
         {assign var=actives value=true}
-      {elseif $mail->disabled}
+      {elseif $mail->disabled && $mail->has_disable()}
         {assign var=disabled value=true}
       {/if}
       <td class="titre">
@@ -345,18 +462,22 @@ Pour ceci changer ses permissions en 'disabled'.
       </td>
       <td>
         {if $mail->broken}<span style="color: #f00">{/if}
-        {$mail->email}
+        {if $mail->email == 'googleapps'}<a href="admin/googleapps/user/{$mr.hruid}">{/if}
+        {$mail->display_email}
+        {if $mail->email == 'googleapps'}</a>{/if}
         {if $mail->broken}<em> (en panne)</em></span>{/if}
       </td>
       <td class="action">
+        {if $mail->is_removable()}
         <a href="javascript:del_fwd('{$mail->email}')">delete</a>
+        {/if}
       </td>
     </tr>
     {if $mail->panne && $mail->panne neq "0000-00-00"}
     <tr class="{$class}">
       <td colspan="3" class="smaller" style="color: #f00">
         {icon name=error title="Panne"}
-        Panne de {$mail->email} le {$mail->panne|date_format}
+        Panne de {$mail->display_email} le {$mail->panne|date_format}
         {if $mail->panne neq $mail->last}confirmée le {$mail->last|date_format}{/if}
       </td>
       <td class="action">
@@ -368,7 +489,7 @@ Pour ceci changer ses permissions en 'disabled'.
     {cycle assign=class values="impair,pair"}
     <tr class="{$class}">
       <td class="titre" colspan="2">
-        Ajouter un email
+        Ajouter une adresse
       </td>
       <td>
         <input type="text" name="email" size="29" maxlength="60" value="" />
@@ -385,10 +506,10 @@ Pour ceci changer ses permissions en 'disabled'.
     <tr class="{$class}">
       <td colspan="4" class="center">
         {if $actives}
-        <input type="submit" name="disable_fwd" value="Désactiver la redirection mail" />
+        <input type="submit" name="disable_fwd" value="Désactiver la redirection des emails" />
         {/if}
         {if $disabled}
-        <input type="submit" name="enable_fwd" value="Réactiver la redirection mail" />
+        <input type="submit" name="enable_fwd" value="Réactiver la redirection des emails" />
         {/if}
       </td>
     </tr>
@@ -397,6 +518,5 @@ Pour ceci changer ses permissions en 'disabled'.
 
 {/if}
 {/if}
-{/if}
 
 {* vim:set et sw=2 sts=2 sws=2 enc=utf-8: *}