Merge branch 'xorg/master' into xorg/f/xnet-accounts
[platal.git] / templates / admin / user.tpl
index e3fec0c..10ad40a 100644 (file)
@@ -1,6 +1,6 @@
 {**************************************************************************}
 {*                                                                        *}
-{*  Copyright (C) 2003-2009 Polytechnique.org                             *}
+{*  Copyright (C) 2003-2011 Polytechnique.org                             *}
 {*  http://opensource.polytechnique.org/                                  *}
 {*                                                                        *}
 {*  This program is free software; you can redistribute it and/or modify  *}
 {**************************************************************************}
 
 
-{if $smarty.post.u_kill_conf}
-<form method="post" action="admin/user">
+{if t($smarty.post.delete_account)}
+<form method="post" action="admin/user/{$user->login()}">
   {xsrf_token_field}
-  <div class="center">
-    <input type="hidden" name="user_id" value="{$smarty.request.user_id}" />
-    Confirmer la suppression de l'utilisateur {$smarty.request.user_id} ({$mr.prenom} {$mr.nom} - X{$mr.promo})&nbsp;&nbsp;
-    <input type="submit" name="u_kill" value="continuer" />
-  </div>
+  <fieldset>
+    <legend>Confirmer la suppression de l'utilisateur {$user->hruid}</legend>
+
+    {if $user->hasProfile()}
+    <p>
+      <input type="checkbox" name="clear_profile" /> Vider la fiche de
+      l'utilisateur.
+    </p>
+    {else}
+    <p>
+      <input type="checkbox" name="erase_account" {if $user->state eq 'pending'}checked="checked"{/if} /> Supprimer le compte définitivement.
+    </p>
+    {/if}
+    <p>
+      <input type="hidden" name="uid" value="{$user->uid}" />
+      <input type="submit" name="account_deletion_cancel" value="Annuler" />
+      <input type="submit" name="account_deletion_confirmation" value="Confirmer" />
+    </p>
+  </fieldset>
 </form>
-{elseif $user}
+{elseif t($smarty.post.erase_account)}
+<p>
+  <a href="admin/accounts">Retourner à la gestion des comptes</a>
+</p>
+{else}
 {literal}
 
 <script type="text/javascript">
 //<![CDATA[
-function doEditUser() {
-  document.forms.auth.hashpass.value = hash_encrypt(document.forms.edit.password.value);
-  document.forms.auth.password.value = "";
-  document.forms.auth.submit();
-}
-
 function del_alias(alias) {
   document.forms.alias.del_alias.value = alias;
   document.forms.alias.submit();
@@ -55,6 +67,12 @@ function del_fwd(fwd) {
   document.forms.fwds.del_fwd.value = fwd;
   document.forms.fwds.submit();
 }
+
+function del_openid(id) {
+  document.forms.openid.del_openid.value = id;
+  document.forms.openid.submit();
+}
+
 function act_fwd(fwd, activate) {
   if (activate)
     document.forms.fwds.activate_fwd.value = fwd;
@@ -76,8 +94,8 @@ function ban_read()
 }
 
 $(document).ready(function() {
-  $('#tabs > ul').tabs();
-  $('.ui-tabs-nav li').width('33%')
+  $('#tabs').tabs();
+  $('.ui-tabs-nav li').width('24%')
     .click(function() { $(this).children('a').click() });
 });
 
@@ -86,11 +104,11 @@ $(document).ready(function() {
 {/literal}
 
 <div id="tabs">
-  Compte de {$user->login()}.
   <ul style="margin-top: 0">
-    <li><a href="{$platal->pl_self()}#account"><span >Compte</span></a></li>
-    <li><a href="{$platal->pl_self()}#emails"><span>Emails</span></a></li>
-    <li><a href="{$platal->pl_self()}#forums"><span>Forums</span></a></li>
+    <li><a href="#account"><span>Compte de {$user->login()}</span></a></li>
+    <li><a href="#emails"><span>Emails</span></a></li>
+    <li><a href="#authext"><span>OpenID</span></a></li>
+    <li><a href="#forums"><span>Forums</span></a></li>
   </ul>
 </div>
 
@@ -107,21 +125,33 @@ $(document).ready(function() {
     <tr>
       <th colspan="2">
         <div style="float: right; text-align: right">
+          {if $user->state eq 'pending'}
+          Non-inscrit
+          {else}
           Inscrit le {$user->registration_date|date_format}
+          {/if}
         </div>
         <div style="float: left; text-align: left">
-          {icon name=user_gray} {$mr.hruid} (uid {$user->id()})
+          {icon name=user_gray} {$user->hruid} (uid {$user->id()})
         </div>
         <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>
+      <td class="titre">Nom complet<br />
+        <span class="smaller">Prénom NOM</span>
+      </br></td>
+      <td>{if $hasProfile}{$user->fullName()}{else}<input type="text" name="full_name" maxlength="255" value="{$user->fullName()}" />{/if}</td>
+    </tr>
+    <tr>
+      <td class="titre">Nom annuaire<br />
+        <span class="smaller">NOM Prénom</span>
+      </td>
+      <td>{if $hasProfile}{$user->directoryName()}{else}<input type="text" name="directory_name" maxlength="255" value="{$user->directoryName()}" />{/if}</td>
     </tr>
     <tr>
       <td class="titre">Nom affiché</td>
-      <td><input type="text" name="display_name" maxlength="255" value="{$user->displayName()}" /></td>
+      <td>{if $hasProfile}{$user->displayName()}{else}<input type="text" name="display_name" maxlength="255" value="{$user->displayName()}" />{/if}</td>
     </tr>
     <tr>
       <td class="titre">Sexe</td>
@@ -130,15 +160,19 @@ $(document).ready(function() {
         <label><input type="radio" name="sex" value="male" {if !$user->isFemale()}checked="checked"{/if} /> homme</label>
       </td>
     </tr>
+    <tr>
+      <td class="titre">Email</td>
+      <td>{if $user->checkPerms('mail')}{$user->forlifeEmail()}{else}<input type="text" name="email" size="40" maxlength="255" value="{$user->forlifeEmail()}" />{/if}</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="" />
+          <input type="text" name="new_plain_password" size="10" maxlength="256" value="********" />
+          <input type="hidden" name="pwhash" value="" />
         </div>
         <div style="float: left; margin-top: 5px;">
-          {checkpasswd prompt="newpass_clair" submit="dummy_none"}
+          {checkpasswd prompt="new_plain_password" submit="dummy_none"}
         </div>
       </td>
     </tr>
@@ -219,10 +253,14 @@ $(document).ready(function() {
     </tr>
     <tr class="impair">
       <td colspan="2" class="center">
-        {* TODO: on 'update_account', update the hashpass field before sending the form. *}
-        <input type="submit" name="update_account" value="Mettre à jour" />
+        <input type="submit" name="update_account" value="Mettre à jour" onclick="return hashResponse('new_plain_password', false, false);" />
         <input type="submit" name="su_account" value="Prendre l'identité" />
         <input type="submit" name="log_account" value="Consulter les logs" />
+        {if $user->state neq 'pending'}
+        <input type="submit" name="delete_account" value="Désinscrire" />
+        {elseif !$user->hasProfile()}
+        <input type="submit" name="delete_account" value="Supprimer le compte" />
+        {/if}
       </td>
     </tr>
   </table>
@@ -242,7 +280,7 @@ $(document).ready(function() {
     <tr>
       <td><input type="radio" name="owner" value="{$profile.pid}" {if $profile.owner}checked="checked"{/if}
                  onclick="this.form.submit()" /></td>
-      <td>{$profile.hrpid}</td>
+      <td>{$profile.hrpid} (pid {$profile.pid})</td>
       <td class="right">
         <a href="profile/edit/{$profile.hrpid}">{icon name=user_edit}</a>
         <a href="profile/{$profile.hrpid}" class="popup2">{icon name=user_suit}</a>
@@ -250,6 +288,7 @@ $(document).ready(function() {
       </td>
     </tr>
     {/iterate}
+    {if $profiles->total() > 0}
     <tr>
       <td>
         <input type="radio" name="owner" value="0" onclick="this.form.submit()" />
@@ -257,6 +296,7 @@ $(document).ready(function() {
       <td>None</td>
       <td></td>
     </tr>
+    {/if}
     <tr class="pair">
       <td colspan="3">
         <input type="hidden" name="del_profile" value="" />
@@ -267,136 +307,27 @@ $(document).ready(function() {
   </table>
 </form>
 
-</div>
+<h1>Groupes dont l'utilisateur est membre</h1>
 
-<!--
-  <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>
-        <input type="text" name="nomN" size="20" maxlength="255" value="{$mr.nom}" />
-      </td>
-    </tr>
-    <tr class="pair">
-      <td class="titre">
-        Nom d'usage
-      </td>
-      <td>
-        <input type="text" name="nomusageN" size="20" maxlength="255" value="{$mr.nom_usage}" />
-      </td>
-    </tr>
-    <tr class="pair">
-      <td class="titre">
-        Prénom
-      </td>
-      <td>
-        <input type="text" name="prenomN" size="20" maxlength="30" value="{$mr.prenom}" />
-      </td>
-    </tr>
-    <tr class="pair">
-      <td class="titre">
-        Sexe
-      </td>
-      <td>
-        <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">
-      <td class="titre">
-        Droits
-      </td>
-      <td>
-        <select name="permsN">
-          <option value="user" {if $mr.perms eq "user"}selected="selected"{/if}>user</option>
-          <option value="admin" {if $mr.perms eq "admin"}selected="selected"{/if}>admin</option>
-          <option value="pending" {if $mr.perms eq "pending"}selected="selected"{/if}>pending</option>
-          <option value="disabled" {if $mr.perms eq "disabled"}selected="selected"{/if}>disabled</option>
-        </select>
-      </td>
-    </tr>
-    {if $mr.perms neq 'pending'}
-    <tr class="pair">
-      <td class="titre">
-        {if $mr.naiss_err}<span class="erreur">{/if}
-        Date de naissance
-        {if $mr.naiss_err}</span>{/if}
-      </td>
-      <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&nbsp;: {$mr.naissance_ini})</span>
-        {elseif $mr.naiss_err}
-          <span class="erreur smaller">({icon name=error}Date de naissance incohérente)</span>
-        {/if}
-      </td>
-    </tr>
-    {/if}
-    <tr class="pair">
-      <td class="titre">
-        Date de décès
-      </td>
-      <td>
-        <input type="text" name="decesN" size="12" maxlength="10" value="{$mr.deces}" />
-      </td>
-    </tr>
-    <tr class="pair">
-      <td class="titre">
-        Promo
-      </td>
-      <td>
-        <input type="text" name="promoN" size="4" maxlength="4" value="{$mr.promo}" />
-      </td>
-    </tr>
-    {if $mr.perms eq 'pending'}
-    <tr class="center">
-      <td colspan="2">
-        <input type="hidden" name="naissanceN" value="{$mr.naissance}" />
-        <input onclick="doEditUser(); return true;" type="submit" name="u_edit" value="UPDATE" />
-      </td>
-    </tr>
-    {else}
-    <tr class="center">
-      <td>
-        <a href="profile/{$mr.hruid}" class="popup2">[Voir fiche]</a>
-      </td>
-      <td>
-        <input onclick="doEditUser(); return true;" type="submit" name="u_edit" value="UPDATE" />
-      </td>
-    </tr>
-    <tr class="center">
-      <td>
-        <a href="admin/trombino/{$mr.user_id}">[Trombino]</a>
-      </td>
-      <td>
-        <input type="submit" name="u_kill_conf" value="Désinscrire" />
-      </td>
-    </tr>
-    {/if}
-  </table>
-</form>
-{if $mr.perms neq 'pending'}
-<p>
-Ne pas utiliser [Désinscrire] si le but est d'exclure la personne.
-Pour ceci changer ses permissions en 'disabled'.
-</p>
--->
+<table class="bicol">
+  <tr>
+    <th>Nom du groupe</th>
+    <th>Permissions</th>
+  </tr>
+  {foreach from=$user->groups() item=group}
+  <tr class="impair">
+    <td>{$group.nom}</td>
+    <td style="text-align: right">
+      {$group.perms}
+      <a href="http://www.polytechnique.net/{$group.diminutif}/member/{$user->hruid}">
+      {icon name="user_edit" title="Modifier l'inscription"}
+      </a>
+    </td>
+  </tr>
+  {/foreach}
+</table>
+
+</div>
 
 <div id="emails">
 <h1>Gestion de l'adresse X.org</h1>
@@ -432,7 +363,7 @@ Pour ceci changer ses permissions en 'disabled'.
         <input type="text" name="email" size="29" maxlength="60" value="" />
       </td>
       <td class="action">
-        <input type="hidden" name="user_id" value="{$mr.user_id}" />
+        <input type="hidden" name="uid" value="{$user->id()}" />
         <input type="hidden" name="del_alias" value="" />
         <input type="submit" name="add_alias" value="Ajouter" />
       </td>
@@ -512,7 +443,7 @@ Pour ceci changer ses permissions en 'disabled'.
         <input type="text" name="email" size="29" maxlength="60" value="" />
       </td>
       <td class="action">
-        <input type="hidden" name="user_id" value="{$mr.user_id}" />
+        <input type="hidden" name="uid" value="{$user->id()}" />
         <input type="hidden" name="del_fwd" value="" />
         <input type="hidden" name="clean_fwd" value="" />
         <input type="hidden" name="activate_fwd" value="" />
@@ -533,24 +464,65 @@ Pour ceci changer ses permissions en 'disabled'.
   </table>
 </form>
 
-{javascript name="ajax"}
 {test_email hruid=$user->login()}
 
 <h1>Autres adresses de l'utilisateur</h1>
 
 <table class="bicol">
-  <th>Virtual aliases auquel l'utilisateur appartient</th>
+  <tr>
+    <th colspan="3">Mailing lists auquelles l'utilisateur appartient</th>
+  </tr>
+  {foreach from=$mlists item=mlist}
+  <tr>
+    <td>
+      <a href="http://listes.polytechnique.org/members/{$mlist.addr|replace:"@":"_"}">
+      {$mlist.addr}
+      </a>
+    </td>
+    <td>
+      <input type="checkbox" disabled="disabled" {if $mlist.sub}checked="checked"{/if} /> Membre
+    </td>
+    <td>
+      <input type="checkbox" disabled="disabled" {if $mlist.own}checked="checked"{/if} /> Modérateur
+    </td>
+  </tr>
+  {/foreach}
+</table>
+
+<br />
+<table class="bicol">
+  <tr>
+    <th>Virtual aliases auquel l'utilisateur appartient</th>
+  </tr>
   {foreach from=$virtuals item=virtual}
   <tr class="{cycle values="impair,pair"}">
     <td>{$virtual}</td>
   </tr>
   {/foreach}
 </table>
+</div>
 
+<div id="authext">
+<h1>Gestion des autorisations d'authentification externe</h1>
+
+<form id="openid" method="post" action="admin/user/{$user->login()}#authext">
+  {xsrf_token_field}
+  <table class="bicol">
+    <tr>
+      <th colspan="2">Sites de confiance</th>
+    </tr>
+    {iterate from=$openid item=site}
+    <tr class="{cycle values="pair,impair"}">
+      <td><a href="{$site.url}">{$site.url}</a></td>
+      <td><a href="javascript:del_openid({$site.id})">{icon name=cross}</a></td>
+    </tr>
+    {/iterate}
+  </table>
+  <div><input type="hidden" name="del_openid"/></div>
+</form>
 </div>
 
 <div id="forums">
-
 <h1>Gestion de l'accès au forums</h1>
 
 <form id="bans" method="post" action="admin/user/{$user->login()}#forums">
@@ -593,16 +565,13 @@ Pour ceci changer ses permissions en 'disabled'.
     </tr>
     <tr class="center">
       <td colspan="3">
-        <input type="hidden" name="user_id" value="{$mr.user_id}" />
+        <input type="hidden" name="uid" value="{$user->id()}" />
         <input type="submit" name="b_edit" value="Modifier" />
       </td>
     </tr>
   </table>
 </form>
 </div>
-
-
-{/if}
 {/if}
 
 {* vim:set et sw=2 sts=2 sws=2 enc=utf-8: *}