FIX for migration from old versions

This commit is contained in:
Laurent Destailleur 2018-07-03 20:08:55 +02:00
parent 50df452b9e
commit 38cd5180d9
3 changed files with 49 additions and 12 deletions

View File

@ -1671,11 +1671,12 @@ class DolibarrModules // Can not be abstract, because we need to insta
// Search if perm already present
$sql = "SELECT count(*) as nb FROM ".MAIN_DB_PREFIX."rights_def";
$sql.= " WHERE id = ".$r_id." AND entity = ".$entity;
$resqlselect=$this->db->query($sql);
if ($resqlselect)
{
$obj = $this->db->fetch_object($resqlselect);
if ($obj->nb == 0)
$objcount = $this->db->fetch_object($resqlselect);
if ($objcount && $objcount->nb == 0)
{
if (dol_strlen($r_perms) )
{
@ -1739,23 +1740,33 @@ class DolibarrModules // Can not be abstract, because we need to insta
{
$obj2=$this->db->fetch_object($resqlseladmin);
dol_syslog(get_class($this)."::insert_permissions Add permission to user id=".$obj2->rowid);
$tmpuser=new User($this->db);
$tmpuser->fetch($obj2->rowid);
if (!empty($tmpuser->id)) {
$result = $tmpuser->fetch($obj2->rowid);
if ($result > 0) {
$tmpuser->addrights($r_id, '', '', 0, 1);
}
else
{
dol_syslog(get_class($this)."::insert_permissions Failed to add the permission to user because fetch return an error", LOG_ERR);
}
$i++;
}
if (! empty($user->admin)) // Reload permission for current user if defined
{
// We reload permissions
$user->clearrights();
$user->getrights();
}
}
else dol_print_error($this->db);
else
{
dol_print_error($this->db);
}
}
}
if ($reinitadminperms && ! empty($user->admin)) // Reload permission for current user if defined
{
// We reload permissions
$user->clearrights();
$user->getrights();
}
}
$this->db->free($resql);
}

View File

@ -246,7 +246,7 @@ class modSupplierProposal extends DolibarrModules
public function remove($options = '')
{
$sql = array(
"DELETE FROM ".MAIN_DB_PREFIX."rights_def WHERE module = 'askpricesupplier'"
"DELETE FROM ".MAIN_DB_PREFIX."rights_def WHERE module = 'askpricesupplier'" // To delete/clean deprecated entries
);
return $this->_remove($sql, $options);

View File

@ -192,6 +192,32 @@ if (! GETPOST('action','aZ09') || preg_match('/upgrade/i',GETPOST('action','aZ09
$versiontoarray=explode('.',$versionto);
$versionranarray=explode('.',DOL_VERSION);
// Force to execute this at begin to avoid the new core code into Dolibarr to be broken.
$sql = 'ALTER TABLE '.MAIN_DB_PREFIX.'user ADD COLUMN birth date';
$db->query($sql, 1);
$sql = 'ALTER TABLE '.MAIN_DB_PREFIX.'user ADD COLUMN dateemployment date';
$db->query($sql, 1);
$sql = 'ALTER TABLE '.MAIN_DB_PREFIX.'user ADD COLUMN dateemploymentend date';
$db->query($sql, 1);
$sql = 'ALTER TABLE '.MAIN_DB_PREFIX.'user ADD COLUMN default_range integer';
$db->query($sql, 1);
$sql = 'ALTER TABLE '.MAIN_DB_PREFIX.'user ADD COLUMN default_c_exp_tax_cat integer';
$db->query($sql, 1);
$sql = 'ALTER TABLE '.MAIN_DB_PREFIX.'extrafields ADD COLUMN langs varchar(24)';
$db->query($sql, 1);
$sql = 'ALTER TABLE '.MAIN_DB_PREFIX.'extrafields ADD COLUMN fieldcomputed text';
$db->query($sql, 1);
$sql = 'ALTER TABLE '.MAIN_DB_PREFIX.'extrafields ADD COLUMN fielddefault varchar(255)';
$db->query($sql, 1);
$sql = 'ALTER TABLE '.MAIN_DB_PREFIX."extrafields ADD COLUMN enabled varchar(255) DEFAULT '1'";
$db->query($sql, 1);
$sql = 'ALTER TABLE '.MAIN_DB_PREFIX.'extrafields ADD COLUMN help text';
$db->query($sql, 1);
$sql = 'ALTER TABLE '.MAIN_DB_PREFIX.'user_rights ADD COLUMN entity integer DEFAULT 1 NOT NULL';
$db->query($sql, 1);
$afterversionarray=explode('.','2.0.0');
$beforeversionarray=explode('.','2.7.9');
if (versioncompare($versiontoarray,$afterversionarray) >= 0 && versioncompare($versiontoarray,$beforeversionarray) <= 0)