More readable administration portal.
authorFlorent Bruneau <florent.bruneau@polytechnique.org>
Sun, 7 Dec 2008 20:45:15 +0000 (21:45 +0100)
committerFlorent Bruneau <florent.bruneau@polytechnique.org>
Sun, 7 Dec 2008 20:45:15 +0000 (21:45 +0100)
Add admin/accounts page with a list of all administrators and all disabled
accounts.

Signed-off-by: Florent Bruneau <florent.bruneau@polytechnique.org>
modules/admin.php
templates/admin/accounts.tpl [new file with mode: 0644]
templates/admin/index.tpl

index a9eddc6..a8ce74b 100644 (file)
@@ -47,6 +47,7 @@ class AdminModule extends PLModule
             'admin/wiki'                   => $this->make_hook('wiki', AUTH_MDP, 'admin'),
             'admin/ipwatch'                => $this->make_hook('ipwatch', AUTH_MDP, 'admin'),
             'admin/icons'                  => $this->make_hook('icons', AUTH_MDP, 'admin'),
+            'admin/accounts'               => $this->make_hook('accounts', AUTH_MDP, 'admin'),
         );
     }
 
@@ -1239,6 +1240,19 @@ class AdminModule extends PLModule
         sort($icons);
         $page->assign('icons', $icons);
     }
+
+    function handler_accounts(&$page)
+    {
+        $page->changeTpl('admin/accounts.tpl');
+        $page->assign('disabled', XDB::iterator('SELECT  u.nom, u.prenom, u.promo, u.comment, u.hruid
+                                                   FROM  auth_user_md5 AS u
+                                                  WHERE  perms = \'disabled\'
+                                               ORDER BY  nom, prenom'));
+        $page->assign('admins', XDB::iterator('SELECT  u.nom, u.prenom, u.promo, u.hruid
+                                                 FROM  auth_user_md5 AS u
+                                                WHERE  perms = \'admin\'
+                                             ORDER BY  nom, prenom'));
+    }
 }
 
 // vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8:
diff --git a/templates/admin/accounts.tpl b/templates/admin/accounts.tpl
new file mode 100644 (file)
index 0000000..648ff7d
--- /dev/null
@@ -0,0 +1,52 @@
+{**************************************************************************}
+{*                                                                        *}
+{*  Copyright (C) 2003-2008 Polytechnique.org                             *}
+{*  http://opensource.polytechnique.org/                                  *}
+{*                                                                        *}
+{*  This program is free software; you can redistribute it and/or modify  *}
+{*  it under the terms of the GNU General Public License as published by  *}
+{*  the Free Software Foundation; either version 2 of the License, or     *}
+{*  (at your option) any later version.                                   *}
+{*                                                                        *}
+{*  This program is distributed in the hope that it will be useful,       *}
+{*  but WITHOUT ANY WARRANTY; without even the implied warranty of        *}
+{*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *}
+{*  GNU General Public License for more details.                          *}
+{*                                                                        *}
+{*  You should have received a copy of the GNU General Public License     *}
+{*  along with this program; if not, write to the Free Software           *}
+{*  Foundation, Inc.,                                                     *}
+{*  59 Temple Place, Suite 330, Boston, MA  02111-1307  USA               *}
+{*                                                                        *}
+{**************************************************************************}
+
+<h1>Comptes désactivés</h1>
+
+<table class="bicol">
+  <tr><th>Nom</th><th>Commentaire</th></tr>
+  {iterate from=$disabled item=user}
+  <tr class="{cycle values="pair,impair"}">
+    <td>
+      <a href="admin/user/{$user.hruid}">{$user.prenom} {$user.nom} ({$user.promo})</a>
+    </td>
+    <td>
+      {$user.comment|default='(none)'}
+    </td>
+  </tr>
+  {/iterate}
+</table>
+
+<h1>Administrateurs du site</h1>
+
+<table class="tinybicol">
+  <tr><th>Utilisateur</th></tr>
+  {iterate from=$admins item=user}
+  <tr class="{cycle values="pair,impair"}">
+    <td>
+      <a href="admin/user/{$user.hruid}">{$user.prenom} {$user.nom} ({$user.promo})</a>
+    </td>
+  </tr>
+  {/iterate}
+</table>
+
+{* vim:set et sw=2 sts=2 sws=2 enc=utf-8: *}
index f6b59cc..bdc5473 100644 (file)
 
 <h1>Administration Polytechnique.org</h1>
 
-<table class="bicol" cellpadding="3" summary="Système">
-  <tr><th>Système</th></tr>
+<table class="bicol" cellpadding="3" summary="Services">
+  <tr><th colspan="2">{icon name=wrench} Services</th></tr>
   <tr class="impair">
+    <td class="titre">Postfix</td>
     <td>
-      <strong>Postfix&nbsp;:</strong>&nbsp;&nbsp;
       <a href="admin/postfix/blacklist">Blacklist</a>
       &nbsp;&nbsp;|&nbsp;&nbsp;
       <a href="admin/postfix/whitelist">Whitelist</a>
     </td>
   </tr>
   <tr class="pair">
+    <td class="titre">Accès au site</td>
     <td>
-      <strong>Sécurité&nbsp;:</strong>&nbsp;&nbsp;
+      <a href="admin/auth-groupes-x">Auth Groupes X</a>
+      &nbsp;&nbsp;|&nbsp;&nbsp;
       <a href="admin/logger">Logs des sessions</a>
       &nbsp;&nbsp;|&nbsp;&nbsp;
       <a href="admin/logger/actions">Actions</a>
       &nbsp;&nbsp;|&nbsp;&nbsp;
-      <a href="admin/emails/watch">Emails</a>
+      <a href="admin/ipwatch">IP surveillées</a>
+    </td>
+  </tr>
+  <tr class="impair">
+    <td class="titre">Emails</td>
+    <td>
+      <a href="admin/lists">MLs</a>
+      &nbsp;&nbsp;|&nbsp;&nbsp;
+      <a href="admin/mx/broken">MX défaillants</a>
       &nbsp;&nbsp;|&nbsp;&nbsp;
       <a href="admin/emails/lost">Perdus de vue</a>
       &nbsp;&nbsp;|&nbsp;&nbsp;
-      <a href="admin/ipwatch">IPs</a>
+      <a href="admin/emails/watch">Surveillés</a>
+    </td>
+  </tr>
+  <tr class="pair">
+    <td class="titre">Forums</td>
+    <td>
+      <a href="admin/forums">Gestion des mises au ban</a>
+    </td>
+  </tr>
+  <tr class="impair">
+    <td class="titre">Trésorerie</td>
+    <td>
+      <a href="admin/payments">Paiements</a>
+    </td>
+  </tr>
+  <tr class="pair">
+    <td class="titre">Divers</td>
+    <td>
+      <a href="admin/downtime">Coupures</a>
+      &nbsp;&nbsp;|&nbsp;&nbsp;
+      <a href="admin/icons">Icônes</a>
     </td>
   </tr>
+
 </table>
 
 <br />
 
-<table class="bicol" cellpadding="3" summary="Système">
-  <tr><th>Contenu du site</th></tr>
+<table class="bicol" cellpadding="3" summary="Utilisateurs">
+  <tr><th colspan="2">{icon name=user_suit} Utilisateurs</th></tr>
   <tr class="impair">
+    <td class="titre">Comptes</td>
     <td>
-      <strong>Utilisateurs&nbsp;:</strong>&nbsp;&nbsp;
-      <a href="admin/promo">Ajout</a>
+      <a href="admin/promo">Ajout promotion</a>
       &nbsp;&nbsp;|&nbsp;&nbsp;
-      <a href="admin/user">Edit/Su/Logs</a>
+      <a href="admin/user">Edition</a>
       &nbsp;&nbsp;|&nbsp;&nbsp;
       <a href="admin/homonyms">Homonymes</a>
       &nbsp;&nbsp;|&nbsp;&nbsp;
-      <a href="admin/ax-xorg">AX/X.org</a>
-      &nbsp;&nbsp;|&nbsp;&nbsp;      
       <a href="admin/deaths">Décès</a>
-      &nbsp;&nbsp;|&nbsp;&nbsp;
-      <a href="admin/dead-but-active">Décédés actifs</a>
-      &nbsp;&nbsp;|&nbsp;&nbsp;
-      <a href="admin/synchro_ax">Synchro AX</a>
-      &nbsp;&nbsp;|&nbsp;&nbsp;
-      <a href="admin/googleapps">Google Apps</a>
     </td>
   </tr>
   <tr class="pair">
+    <td class="titre">AX</td>
     <td>
-      <strong>Infos dynamiques&nbsp;:</strong>&nbsp;&nbsp;
-      <a href="admin/downtime">Coupures</a>
+      <a href="admin/ax-xorg">AX/X.org</a>
       &nbsp;&nbsp;|&nbsp;&nbsp;
-      <a href="admin/mx/broken">MX défaillants</a>
+      <a href="admin/synchro_ax">Synchro AX</a>
+    </td>
+  </tr>
+  <tr class="impair">
+    <td class="titre">Administration</td>
+    <td>
+      <a href="admin/dead-but-active">Décédés actifs</a>
       &nbsp;&nbsp;|&nbsp;&nbsp;
-      <a href="admin/tips">Astuces</a>
+      <a href="admin/accounts">Administrateurs/Désactivations</a>
       &nbsp;&nbsp;|&nbsp;&nbsp;
-      <a href="admin/icons">Icônes</a>
+      <a href="admin/googleapps">Google Apps</a>
     </td>
   </tr>
+
+  <tr><th colspan="2">{icon name=user_gray} Champs</th></tr>
   <tr class="impair">
+    <td class="titre">Emploi</td>
     <td>
-      <strong>Champs profil&nbsp;:</strong>&nbsp;&nbsp;
       <a href="admin/formations">Formations</a>
       &nbsp;&nbsp;|&nbsp;&nbsp;
-      <a href="admin/binets">Binets</a>
-      &nbsp;&nbsp;|&nbsp;&nbsp;
-      <a href="admin/skins">Skins</a>
-      &nbsp;&nbsp;|&nbsp;&nbsp;
-      <a href="admin/medals">Décorations</a>
-      &nbsp;&nbsp;|&nbsp;&nbsp;
-      <a href="admin/sections">Sections</a>
-      &nbsp;&nbsp;|&nbsp;&nbsp;
       <a href="admin/secteurs">Secteurs</a>
       &nbsp;&nbsp;|&nbsp;&nbsp;
       <a href="admin/ss_secteurs">Sous-secteurs</a>
     </td>
   </tr>
   <tr class="pair">
+    <td class="titre">Profil</td>
     <td>
-      <strong>Newsletter&nbsp;:</strong>&nbsp;&nbsp;
-      <a href="admin/newsletter">Liste</a>
+      <a href="admin/binets">Binets</a>
       &nbsp;&nbsp;|&nbsp;&nbsp;
-      <a href="admin/newsletter/categories">Catégories</a>
+      <a href="admin/medals">Décorations</a>
+      &nbsp;&nbsp;|&nbsp;&nbsp;
+      <a href="admin/sections">Sections</a>
     </td>
   </tr>
   <tr class="impair">
+    <td class="titre">Géoloc</td>
     <td>
-      <strong>Administrer&nbsp;:</strong>&nbsp;&nbsp;
-      <a href="admin/auth-groupes-x">Auth Groupes X</a>
+      <a href="admin/geoloc">Synchro</a>
       &nbsp;&nbsp;|&nbsp;&nbsp;
-      <a href="admin/lists">Listes</a>
-    </td>  
+      <a href="admin/geoloc/dynamap">Dynamap</a>
+    </td>
   </tr>
   <tr class="pair">
+    <td class="titre">Compte</td>
     <td>
-      <strong>Valider demandes&nbsp;:</strong>&nbsp;&nbsp;
-      <a href="admin/validate">Valider</a>
-      &nbsp;&nbsp;|&nbsp;&nbsp;
-      <a href="admin/events">Événements</a>
-      &nbsp;&nbsp;|&nbsp;&nbsp;
-      <a href="admin/validate/answers">Réponses automatiques</a>
+      <a href="admin/skins">Skins</a>
     </td>
   </tr>
+</table>
+
+<br />
+
+<table class="bicol" cellpadding="3" summary="Contenu éditorial">
+  <tr><th colspan="2">{icon name=page_edit} Editorial</th></tr>
   <tr class="impair">
+    <td class="titre">Page d'accueil</td>
     <td>
-      <strong>Trésorerie&nbsp;:</strong>&nbsp;&nbsp;
-      <a href="admin/payments">Paiements</a>
+      <a href="admin/tips">Astuces</a>
+      &nbsp;&nbsp;|&nbsp;&nbsp;
+      <a href="admin/events">Événements</a>
     </td>
   </tr>
   <tr class="pair">
+    <td class="titre">Newletter</td>
     <td>
-      <strong>Géoloc&nbsp;:</strong>&nbsp;&nbsp;
-      <a href="admin/geoloc">Synchro</a>
+      <a href="admin/newsletter">Liste</a>
       &nbsp;&nbsp;|&nbsp;&nbsp;
-      <a href="admin/geoloc/dynamap">Dynamap</a>
+      <a href="admin/newsletter/categories">Catégories</a>
     </td>
   </tr>
   <tr class="impair">
+    <td class="titre">AX-Letter</td>
     <td>
-      <strong>Wiki&nbsp;:</strong>&nbsp;&nbsp;
-      <a href="admin/wiki">Pages et permissions</a>
+      <a href="ax/edit">Edition</a>
+      &nbsp;&nbsp;|&nbsp;&nbsp;
+      <a href="admin/axletter">Inscriptions et Permissions</a>
     </td>
   </tr>
   <tr class="pair">
+    <td class="titre">Wiki</td>
     <td>
-      <strong>AX-Letter&nbsp;:</strong>&nbsp;&nbsp;
-      <a href="ax/edit">Edition</a>
-      &nbsp;&nbsp;|&nbsp;&nbsp;
-      <a href="admin/axletter">Inscriptions et Permissions</a>
+      <a href="admin/wiki">Pages et permissions</a>
     </td>
   </tr>
   <tr class="impair">
+    <td class="titre">Sondages</td>
     <td>
-      <strong>Sondages&nbsp;:</strong>&nbsp;&nbsp;
       <a href="survey/admin">Gestion des sondages</a>
     </td>
   </tr>
   <tr class="pair">
+    <td class="titre">Validations</td>
     <td>
-      <strong>Forums&nbsp;:</strong>&nbsp;&nbsp;
-      <a href="admin/forums">Gestion des mises au ban</a>
+      <a href="admin/validate/answers">Réponses automatiques</a>
     </td>
   </tr>
 </table>