Merge commit 'origin/master' into hruid
[platal.git] / modules / admin.php
index e1e5709..59173b9 100644 (file)
@@ -401,7 +401,7 @@ class AdminModule extends PLModule
                              FROM  auth_user_md5
                             WHERE  user_id = {?}";
         $mr = XDB::query($userinfo_query, $user->id())->fetchOneAssoc();
-        $redirect = ($registered ? new Redirect($user->id()) : null);
+        $redirect = ($registered ? new Redirect($user) : null);
 
         // Processes admin requests, if any.
         foreach($_POST as $key => $val) {
@@ -466,7 +466,7 @@ class AdminModule extends PLModule
 
                     // Eventually adds the alias to the right domain.
                     if ($domain == $globals->mail->alias_dom || $domain == $globals->mail->alias_dom2) {
-                        $req = new AliasReq($user->id(), $alias, 'Admin request', false);
+                        $req = new AliasReq($user, $alias, 'Admin request', false);
                         if ($req->commit()) {
                             $page->trigSuccess("Nouvel alias '$alias@$domain' attribué");
                         } else {
@@ -495,7 +495,7 @@ class AdminModule extends PLModule
                                          SET  rewrite = ''
                                        WHERE  uid = {?} AND rewrite LIKE CONCAT({?}, '@%')",
                                      $user->id(), $val);
-                        fix_bestalias($user->id());
+                        fix_bestalias($user);
                         $page->trigSuccess("L'alias '$val' a été supprimé");
                     }
                     break;
@@ -511,7 +511,7 @@ class AdminModule extends PLModule
                     // As having a non-null bestalias value is critical in
                     // plat/al's code, we do an a posteriori check on the
                     // validity of the bestalias.
-                    fix_bestalias($user->id());
+                    fix_bestalias($user);
                     break;
 
                 // Profile edition.
@@ -685,6 +685,15 @@ class AdminModule extends PLModule
         $page->assign('bans', $bans);
     }
 
+    function getHruid($line, $key)
+    {
+        var_dump($line);
+        if (!isset($line['nom']) || !isset($line['prenom']) || !isset($line['promo'])) {
+            return null;
+        }
+        return make_forlife($line['prenom'], $line['nom'], $line['promo']);
+    }
+
     function getMatricule($line, $key)
     {
         $mat = $line['matricule'];
@@ -717,12 +726,13 @@ class AdminModule extends PLModule
         }
 
         $importer = new CSVImporter('auth_user_md5', 'matricule');
-        $importer->registerFunction('matricule', 'matricle Ecole vers X.org', array($this, 'getMatricule'));
+        $importer->registerFunction('matricule', 'matricule Ecole vers X.org', array($this, 'getMatricule'));
         switch ($action) {
           case 'add':
-            $fields = array('nom', 'nom_ini', 'prenom', 'naissance_ini',
+            $fields = array('hruid', 'nom', 'nom_ini', 'prenom', 'naissance_ini',
                             'prenom_ini', 'promo', 'promo_sortie', 'flags',
                             'matricule', 'matricule_ax', 'perms');
+            $importer->forceValue('hruid', array($this, 'getHruid'));
             $importer->forceValue('promo', $promo);
             $importer->forceValue('promo_sortie', $promo + 3);
             break;
@@ -733,7 +743,8 @@ class AdminModule extends PLModule
         $importer->apply($page, "admin/promo/$action/$promo", $fields);
     }
 
-    function handler_homonyms(&$page, $op = 'list', $target = null) {
+    function handler_homonyms(&$page, $op = 'list', $target = null)
+    {
         $page->changeTpl('admin/homonymes.tpl');
         $page->setTitle('Administration - Homonymes');
         require_once("homonymes.inc.php");
@@ -933,7 +944,11 @@ class AdminModule extends PLModule
             S::assert_xsrf_token();
 
             $req = Validate::get_typed_request(Env::v('uid'), Env::v('type'), Env::v('stamp'));
-            $req->handle_formu();
+            if ($req) {
+                $req->handle_formu();
+            } else {
+                $page->trigWarning('La validation a déjà été effectuée.');
+            }
         }
 
         $r = XDB::iterator('SHOW COLUMNS FROM requests_answers');