From 1201424633200d222f51a4c71fbca8d7dcc292eb Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Sat, 7 Jan 2012 08:28:52 +0100 Subject: [PATCH 1/2] Fix: add database prefix filter --- htdocs/install/upgrade.php | 80 ++++++++++++++++++++------------------ 1 file changed, 43 insertions(+), 37 deletions(-) diff --git a/htdocs/install/upgrade.php b/htdocs/install/upgrade.php index d48c91c6c88..98a97dc3506 100644 --- a/htdocs/install/upgrade.php +++ b/htdocs/install/upgrade.php @@ -227,9 +227,9 @@ if (! GETPOST("action") || preg_match('/upgrade/i',GETPOST('action'))) print '
'.$langs->trans("Error").'
'; } - /* - * Remove deprecated indexes and constraints for Mysql - */ + /* + * Remove deprecated indexes and constraints for Mysql + */ if ($ok && preg_match('/mysql/',$db->type)) { $versioncommande=explode('.','4.0'); @@ -238,43 +238,49 @@ if (! GETPOST("action") || preg_match('/upgrade/i',GETPOST('action'))) { // Suppression vieilles contraintes sans noms et en doubles // Les contraintes indesirables ont un nom qui commence par 0_ ou se termine par ibfk_999 - $listtables=array( 'llx_adherent_options', - 'llx_bank_class', - 'llx_c_ecotaxe', - 'llx_c_methode_commande_fournisseur', // table renamed - 'llx_c_input_method'); - + $listtables=array( + MAIN_DB_PREFIX.'adherent_options', + MAIN_DB_PREFIX.'bank_class', + MAIN_DB_PREFIX.'c_ecotaxe', + MAIN_DB_PREFIX.'c_methode_commande_fournisseur', // table renamed + MAIN_DB_PREFIX.'c_input_method' + ); + $listtables = $db->DDLListTables($conf->db->name,''); foreach ($listtables as $val) { - //print "x".$val."
"; - $sql = "SHOW CREATE TABLE ".$val; - $resql = $db->query($sql); - if ($resql) - { - $values=$db->fetch_array($resql); - $i=0; - $createsql=$values[1]; - while (preg_match('/CONSTRAINT `(0_[0-9a-zA-Z]+|[_0-9a-zA-Z]+_ibfk_[0-9]+)`/i',$createsql,$reg) && $i < 100) - { - $sqldrop="ALTER TABLE ".$val." DROP FOREIGN KEY ".$reg[1]; - $resqldrop = $db->query($sqldrop); - if ($resqldrop) - { - print ''.$sqldrop.";\n"; - } - $createsql=preg_replace('/CONSTRAINT `'.$reg[1].'`/i','XXX',$createsql); - $i++; - } - $db->free($resql); - } - else - { - if ($db->lasterrno() != 'DB_ERROR_NOSUCHTABLE') - { - print ''.$sql.' : '.$db->lasterror()."\n"; - } - } + // Database prefix filter + if (preg_match('/^'.MAIN_DB_PREFIX.'/', $val)) + { + //print "x".$val."
"; + $sql = "SHOW CREATE TABLE ".$val; + $resql = $db->query($sql); + if ($resql) + { + $values=$db->fetch_array($resql); + $i=0; + $createsql=$values[1]; + while (preg_match('/CONSTRAINT `(0_[0-9a-zA-Z]+|[_0-9a-zA-Z]+_ibfk_[0-9]+)`/i',$createsql,$reg) && $i < 100) + { + $sqldrop="ALTER TABLE ".$val." DROP FOREIGN KEY ".$reg[1]; + $resqldrop = $db->query($sqldrop); + if ($resqldrop) + { + print ''.$sqldrop.";\n"; + } + $createsql=preg_replace('/CONSTRAINT `'.$reg[1].'`/i','XXX',$createsql); + $i++; + } + $db->free($resql); + } + else + { + if ($db->lasterrno() != 'DB_ERROR_NOSUCHTABLE') + { + print ''.$sql.' : '.$db->lasterror()."\n"; + } + } + } } } } From 2713099defb8133178554172358aa792e8222ce8 Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Sat, 7 Jan 2012 11:59:23 +0100 Subject: [PATCH 2/2] Fix: uniform code --- htdocs/user/class/user.class.php | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/htdocs/user/class/user.class.php b/htdocs/user/class/user.class.php index 4d671ecb393..c850b7da1fb 100644 --- a/htdocs/user/class/user.class.php +++ b/htdocs/user/class/user.class.php @@ -4,7 +4,7 @@ * Copyright (c) 2004-2010 Laurent Destailleur * Copyright (C) 2004 Sebastien Di Cintio * Copyright (C) 2004 Benoit Mortier - * Copyright (C) 2005-2011 Regis Houssin + * Copyright (C) 2005-2012 Regis Houssin * Copyright (C) 2005 Lionel Cousteix * Copyright (C) 2011 Herve Prot * @@ -1724,15 +1724,15 @@ class User extends CommonObject if ($nameorder) { - if ($this->prenom) $ret.=$this->prenom; - if ($this->prenom && $this->nom) $ret.=' '; - if ($this->nom) $ret.=$this->nom; + if ($this->firstname) $ret.=$this->firstname; + if ($this->firstname && $this->lastname) $ret.=' '; + if ($this->lastname) $ret.=$this->lastname; } else { - if ($this->nom) $ret.=$this->nom; - if ($this->prenom && $this->nom) $ret.=' '; - if ($this->prenom) $ret.=$this->prenom; + if ($this->lastname) $ret.=$this->lastname; + if ($this->firstname && $this->lastname) $ret.=' '; + if ($this->firstname) $ret.=$this->firstname; } return trim($ret); @@ -1833,8 +1833,8 @@ class User extends CommonObject // Champs if ($this->fullname && $conf->global->LDAP_FIELD_FULLNAME) $info[$conf->global->LDAP_FIELD_FULLNAME] = $this->fullname; - if ($this->nom && $conf->global->LDAP_FIELD_NAME) $info[$conf->global->LDAP_FIELD_NAME] = $this->nom; - if ($this->prenom && $conf->global->LDAP_FIELD_FIRSTNAME) $info[$conf->global->LDAP_FIELD_FIRSTNAME] = $this->prenom; + if ($this->nom && $conf->global->LDAP_FIELD_NAME) $info[$conf->global->LDAP_FIELD_NAME] = $this->lastname; + if ($this->prenom && $conf->global->LDAP_FIELD_FIRSTNAME) $info[$conf->global->LDAP_FIELD_FIRSTNAME] = $this->firstname; if ($this->login && $conf->global->LDAP_FIELD_LOGIN) $info[$conf->global->LDAP_FIELD_LOGIN] = $this->login; if ($this->login && $conf->global->LDAP_FIELD_LOGIN_SAMBA) $info[$conf->global->LDAP_FIELD_LOGIN_SAMBA] = $this->login; if ($this->pass && $conf->global->LDAP_FIELD_PASSWORD) $info[$conf->global->LDAP_FIELD_PASSWORD] = $this->pass; // this->pass = mot de passe non crypte @@ -1850,8 +1850,8 @@ class User extends CommonObject if ($soc->fournisseur == 1) $info["businessCategory"] = "Suppliers"; } if ($this->address && $conf->global->LDAP_FIELD_ADDRESS) $info[$conf->global->LDAP_FIELD_ADDRESS] = $this->address; - if ($this->cp && $conf->global->LDAP_FIELD_ZIP) $info[$conf->global->LDAP_FIELD_ZIP] = $this->cp; - if ($this->ville && $conf->global->LDAP_FIELD_TOWN) $info[$conf->global->LDAP_FIELD_TOWN] = $this->ville; + if ($this->cp && $conf->global->LDAP_FIELD_ZIP) $info[$conf->global->LDAP_FIELD_ZIP] = $this->zip; + if ($this->ville && $conf->global->LDAP_FIELD_TOWN) $info[$conf->global->LDAP_FIELD_TOWN] = $this->town; if ($this->office_phone && $conf->global->LDAP_FIELD_PHONE) $info[$conf->global->LDAP_FIELD_PHONE] = $this->office_phone; if ($this->user_mobile && $conf->global->LDAP_FIELD_MOBILE) $info[$conf->global->LDAP_FIELD_MOBILE] = $this->user_mobile; if ($this->office_fax && $conf->global->LDAP_FIELD_FAX) $info[$conf->global->LDAP_FIELD_FAX] = $this->office_fax;