From: Raphaël Barrois Date: Sun, 19 Sep 2010 18:40:16 +0000 (+0200) Subject: Improve xnet account creation (guess correct name/directory_name from email) X-Git-Tag: xorg/1.0.1~172 X-Git-Url: http://git.polytechnique.org/?a=commitdiff_plain;h=445d244cc8597f6fef76b602dbfe9ec598c84ff7;p=platal.git Improve xnet account creation (guess correct name/directory_name from email) Signed-off-by: Raphaël Barrois --- diff --git a/modules/xnetgrp.php b/modules/xnetgrp.php index b4bc9f4..0424231 100644 --- a/modules/xnetgrp.php +++ b/modules/xnetgrp.php @@ -674,18 +674,27 @@ class XnetGrpModule extends PLModule } } else { // User is of type xnet. - list($firstname, $lastname) = explode('@', $email); - $hruid = User::makeHrid($firstname, $lastname, 'ext'); + list($mbox, $domain) = explode('@', strtolower($email)); + $hruid = User::makeHrid($mbox, $domain, 'ext'); // User might already have an account (in another group for example). $user = User::get($hruid); // If the user has no account yet, creates new account: build names from email address. if (empty($user)) { - $display_name = ucwords(strtolower(substr($hruid, strpos('.', $hruid)))); - $full_name = ucwords(strtolower(str_replace('.', ' ', substr($email, strpos('@', $email))))); - XDB::execute('INSERT INTO accounts (hruid, display_name, full_name, email, type) - VALUES ({?}, {?}, {?}, {?}, \'xnet\')', - $hruid, $display_name, $full_name, $email); + $parts = explode('.', $mbox); + if (count($parts) == 1) { + $display_name = $full_name = $directory_name = ucfirst($mbox); + } else { + $firstname = ucfirst($parts[0]); + $lastname = ucwords(implode(' ', array_slice($parts, 1))); + $display_name = $firstname; + $full_name = "$firstname $lastname"; + $directory_name = strtoupper($lastname) . " " . $firstname; + } + XDB::execute('INSERT INTO accounts (hruid, display_name, full_name, directory_name, + email, type) + VALUES ({?}, {?}, {?}, {?}, {?}, \'xnet\')', + $hruid, $display_name, $full_name, $directory_name, $email); $user = User::get($hruid); } } diff --git a/templates/xnetgrp/annuaire.tpl b/templates/xnetgrp/annuaire.tpl index a190767..7da8c93 100644 --- a/templates/xnetgrp/annuaire.tpl +++ b/templates/xnetgrp/annuaire.tpl @@ -84,7 +84,7 @@ Le groupe {$asso->nom} compte {$nb_tot} membres : {elseif $order eq '-directory_name'} {/if} - Prénom NOM + NOM Prénom