From 411acc397f827d09dad04cf5813274ea4584a79a Mon Sep 17 00:00:00 2001 From: Nicolas Iooss Date: Tue, 27 May 2014 00:42:32 +0200 Subject: [PATCH] Fix AX ID updating in admin/add_accounts page This page creates new accounts instead of using existing ones when updating AX IDs. Fix this by looking for profiles in the database. --- modules/admin.php | 35 ++++++++++++++++++++++++++++++----- templates/admin/add_accounts.tpl | 5 ++--- 2 files changed, 32 insertions(+), 8 deletions(-) diff --git a/modules/admin.php b/modules/admin.php index a220bcc..9cf1e7e 100644 --- a/modules/admin.php +++ b/modules/admin.php @@ -971,12 +971,37 @@ class AdminModule extends PLModule } else if (Env::t('add_type') == 'ax_id') { $type = 'x'; foreach ($lines as $line) { - if ($infos = self::formatNewUser($page, $line, $separator, $promotion, 3)) { - XDB::execute('UPDATE profiles - SET ax_id = {?} - WHERE hrpid = {?}', - $infos[2], $infos['hrid']); + $infos = explode($separator, $line); + if (sizeof($infos) > 3 || sizeof($infos) < 2) { + $page->trigError("La ligne $line n'a pas été ajoutée : mauvais nombre de champs."); + continue; } + $infos = array_map('trim', $infos); + if (sizeof($infos) == 3) { + // Get human readable ID with first name and last name + $hrid = User::makeHrid($infos[1], $infos[0], $promotion); + $user = User::getSilent($hrid); + } else { + // The first column is the hrid, possibly without the promotion + $user = User::getSilent($infos[0] . '.' . $promotion); + if (is_null($user)) { + $user = User::getSilent($infos[0]); + } + } + if (is_null($user)) { + $page->trigError("La ligne $line n'a pas été ajoutée : aucun compte trouvé."); + continue; + } + $profile = $user->profile(); + if ($profile->ax_id) { + $page->trigError("Le profil " . $profile->hrpid . " a déjà l'ID AX " . $profile->ax_id); + continue; + } + XDB::execute('UPDATE profiles + SET ax_id = {?} + WHERE pid = {?}', + $infos[2], $profile->id()); + } } diff --git a/templates/admin/add_accounts.tpl b/templates/admin/add_accounts.tpl index ef20ea6..d72ec79 100644 --- a/templates/admin/add_accounts.tpl +++ b/templates/admin/add_accounts.tpl @@ -119,12 +119,11 @@
- - + - +
NomPrénomNom Prénom ou Identifiant (hrid) Matricule AX
{/if} -- 2.1.4