From: Stéphane Jacob Date: Mon, 21 Nov 2011 11:57:02 +0000 (+0100) Subject: Adds sort_name to account names. X-Git-Tag: xorg/1.1.5~84 X-Git-Url: http://git.polytechnique.org/?a=commitdiff_plain;h=b0788bf45aba74ca8835ce6ccda721dc1d6dba5a;p=platal.git Adds sort_name to account names. Signed-off-by: Stéphane Jacob --- diff --git a/classes/profile.php b/classes/profile.php index 104702b..b11e31d 100644 --- a/classes/profile.php +++ b/classes/profile.php @@ -1227,18 +1227,19 @@ class Profile implements PlExportable */ public static function getAccountEquivalentName($name) { - switch ($name) - { - case self::DN_DIRECTORY: - case self::DN_SORT: + switch ($name) { + case self::DN_DIRECTORY: return 'directory_name'; - case self::DN_FULL: - case self::DN_PUBLIC: + case self::DN_SORT: + return 'sort_name'; + case self::DN_FULL: + case self::DN_PUBLIC: + case self::DN_PRIVATE: + case self::DN_SHORT: return 'full_name'; - case self::DN_PRIVATE: - case self::DN_SHORT: - case self::DN_YOURSELF: - default: + case self::DN_YOURSELF: + return 'display_name'; + default: return 'display_name'; } } diff --git a/include/name.func.inc.php b/include/name.func.inc.php index 39b2bfe..9e66232 100644 --- a/include/name.func.inc.php +++ b/include/name.func.inc.php @@ -194,7 +194,7 @@ function update_account_from_profile($uid) INNER JOIN profile_display AS pd ON (pd.pid = ap.pid) SET a.lastname = IF(ppn.lastname_ordinary = '', ppn.lastname_main, ppn.lastname_ordinary), a.firstname = IF(ppn.firstname_ordinary = '', ppn.firstname_main, ppn.firstname_ordinary), - a.full_name = pd.short_name, a.directory_name = pd.directory_name + a.full_name = pd.short_name, a.directory_name = pd.directory_name, a.sort_name = pd.sort_name WHERE a.uid = {?}", $uid); } diff --git a/modules/admin.php b/modules/admin.php index db8fae5..e034bca 100644 --- a/modules/admin.php +++ b/modules/admin.php @@ -469,6 +469,7 @@ class AdminModule extends PLModule } $to_update['full_name'] = build_full_name($firstname, $lastname); $to_update['directory_name'] = build_directory_name($firstname, $lastname); + $to_update['sort_name'] = build_sort_name($firstname, $lastname); } if (Post::s('display_name') != $user->displayName()) { $to_update['display_name'] = Post::s('display_name'); @@ -866,6 +867,7 @@ class AdminModule extends PLModule if (!is_null($sex)) { $fullName = build_full_name($firstname, $lastname); $directoryName = build_directory_name($firstname, $lastname); + $sortName = build_sort_name($firstname, $lastname); $birthDate = self::formatBirthDate($infos[2]); if ($type == 'x') { $xorgId = Profile::getXorgId($infos[4]); @@ -890,14 +892,14 @@ class AdminModule extends PLModule XDB::execute('INSERT INTO profile_display (pid, yourself, public_name, private_name, directory_name, short_name, sort_name, promo) VALUES ({?}, {?}, {?}, {?}, {?}, {?}, {?}, {?})', - $pid, $firstname, $fullName, $fullName, $directoryName, $fullName, $directoryName, $promo); + $pid, $firstname, $fullName, $fullName, $directoryName, $fullName, $sortName, $promo); XDB::execute('INSERT INTO profile_education (id, pid, eduid, degreeid, entry_year, grad_year, promo_year, flags) VALUES (100, {?}, {?}, {?}, {?}, {?}, {?}, \'primary\')', $pid, $eduSchools[Profile::EDU_X], $degreeid, $entry_year, $grad_year, $promotion); XDB::execute('INSERT INTO accounts (hruid, type, is_admin, state, full_name, directory_name, - display_name, lastname, firstname, sex, best_domain) - VALUES ({?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?})', - $infos['hrid'], $type, 0, 'pending', $fullName, $directoryName, + display_name, sort_name, lastname, firstname, sex, best_domain) + VALUES ({?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?})', + $infos['hrid'], $type, 0, 'pending', $fullName, $directoryName, $sortName, $firstname, $lastname, $firstname, $sex, $best_domain); $uid = XDB::insertId(); XDB::execute('INSERT INTO account_profiles (uid, pid, perms) @@ -919,11 +921,12 @@ class AdminModule extends PLModule $firstname = capitalize_name($infos[1]); $fullName = build_full_name($firstname, $lastname); $directoryName = build_directory_name($firstname, $lastname); + $sortName = build_sort_name($firstname, $lastname); XDB::execute('INSERT INTO accounts (hruid, type, is_admin, state, email, full_name, directory_name, - display_name, lastname, firstname, sex) - VALUES ({?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?})', + sort_name, display_name, lastname, firstname, sex) + VALUES ({?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?})', $infos['hrid'], $type, 0, 'pending', $infos[2], $fullName, $directoryName, - $firstname, $lastname, $firstname, $sex); + $sortName ,$firstname, $lastname, $firstname, $sex); $newAccounts[$infos['hrid']] = $fullName; } } diff --git a/modules/xnet.php b/modules/xnet.php index 4dbab88..6964996 100644 --- a/modules/xnet.php +++ b/modules/xnet.php @@ -258,11 +258,12 @@ class XnetModule extends PLModule $firstname = capitalize_name(Post::t('firstname')); $full_name = build_full_name($firstname, $lastname); $directory_name = build_directory_name($firstname, $lastname); + $sort_name = build_sort_name($firstname, $lastname); XDB::query('UPDATE accounts - SET full_name = {?}, directory_name = {?}, display_name = {?}, + SET full_name = {?}, directory_name = {?}, sort_name = {?}, display_name = {?}, firstname = {?}, lastname = {?}, sex = {?} WHERE uid = {?}', - $full_name, $directory_name, Post::t('display_name'), + $full_name, $directory_name, $sort_name, Post::t('display_name'), Post::t('firstname'), Post::t('lastname'), (Post::t('sex') == 'male') ? 'male' : 'female', $user->id()); diff --git a/modules/xnetgrp.php b/modules/xnetgrp.php index 11524dd..96fd4c6 100644 --- a/modules/xnetgrp.php +++ b/modules/xnetgrp.php @@ -525,9 +525,11 @@ class XnetGrpModule extends PLModule } $full_name = build_full_name($firstname, $lastname); $directory_name = build_directory_name($firstname, $lastname); - XDB::execute('INSERT INTO accounts (hruid, display_name, full_name, directory_name, firstname, lastname, email, type, state) - VALUES ({?}, {?}, {?}, {?}, {?}, {?}, {?}, \'xnet\', \'disabled\')', - $hruid, $display_name, $full_name, $directory_name, $firstname, $lastname, $email); + $sort_name = build_sort_name($firstname, $lastname); + XDB::execute('INSERT INTO accounts (hruid, display_name, full_name, directory_name, sort_name, + firstname, lastname, email, type, state) + VALUES ({?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, \'xnet\', \'disabled\')', + $hruid, $display_name, $full_name, $directory_name, $sort_name, $firstname, $lastname, $email); $uid = XDB::insertId(); XDB::execute('INSERT INTO group_members (asso_id, uid) VALUES ({?}, {?})', @@ -957,9 +959,11 @@ class XnetGrpModule extends PLModule } $full_name = build_full_name($firstname, $lastname); $directory_name = build_directory_name($firstname, $lastname); - XDB::execute('INSERT INTO accounts (hruid, display_name, full_name, directory_name, firstname, lastname, email, type, state) - VALUES ({?}, {?}, {?}, {?}, {?}, {?}, {?}, \'xnet\', \'disabled\')', - $hruid, $display_name, $full_name, $directory_name, $firstname, $lastname, $email); + $sort_name = build_sort_name($firstname, $lastname); + XDB::execute('INSERT INTO accounts (hruid, display_name, full_name, directory_name, sort_name, + firstname, lastname, email, type, state) + VALUES ({?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, \'xnet\', \'disabled\')', + $hruid, $display_name, $full_name, $directory_name, $sort_name, $firstname, $lastname, $email); $user = User::getSilent($hruid); } @@ -1256,11 +1260,12 @@ class XnetGrpModule extends PLModule } $full_name = build_full_name($firstname, $lastname); $directory_name = build_directory_name($firstname, $lastname); + $sort_name = build_sort_name($firstname, $lastname); XDB::query('UPDATE accounts - SET full_name = {?}, directory_name = {?}, display_name = {?}, + SET full_name = {?}, directory_name = {?}, sort_name = {?}, display_name = {?}, firstname = {?}, lastname = {?}, sex = {?}, type = {?} WHERE uid = {?}', - $full_name, $directory_name, Post::t('display_name'), $firstname, $lastname, + $full_name, $directory_name, $sort_name, Post::t('display_name'), $firstname, $lastname, (Post::t('sex') == 'male') ? 'male' : 'female', (Post::t('type') == 'xnet') ? 'xnet' : 'virtual', $user->id()); } diff --git a/upgrade/1.1.5/01_names.sql b/upgrade/1.1.5/01_names.sql index 6cf541c..1f82d0c 100644 --- a/upgrade/1.1.5/01_names.sql +++ b/upgrade/1.1.5/01_names.sql @@ -1,3 +1,4 @@ ALTER TABLE profile_public_names DROP COLUMN particles; +ALTER TABLE accounts ADD COLUMN sort_name VARCHAR(255) DEFAULT NULL AFTER directory_name; -- vim:set syntax=mysql: