From 3f2f9da4278262cddfe7b264990678c9966b8f79 Mon Sep 17 00:00:00 2001 From: Juanjo Menent Date: Fri, 24 Mar 2023 22:34:37 +0100 Subject: [PATCH 1/7] FIX #24201 Upload of external module fails to copy from incorrectly generated temp source dir --- htdocs/admin/modules.php | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/htdocs/admin/modules.php b/htdocs/admin/modules.php index 8fcffe8178b..980d39a12a5 100644 --- a/htdocs/admin/modules.php +++ b/htdocs/admin/modules.php @@ -4,7 +4,7 @@ * Copyright (C) 2004-2017 Laurent Destailleur * Copyright (C) 2004 Eric Seigne * Copyright (C) 2005-2017 Regis Houssin - * Copyright (C) 2011 Juanjo Menent + * Copyright (C) 2011-2023 Juanjo Menent * Copyright (C) 2015 Jean-François Ferry * Copyright (C) 2015 Raphaël Doursenaud * Copyright (C) 2018 Nicolas ZABOURI @@ -230,13 +230,12 @@ if ($action == 'install') { // Now we install the module if (!$error) { @dol_delete_dir_recursive($dirins.'/'.$modulenameval); // delete the target directory - $submodulenamedir = $conf->admin->dir_temp.'/'.$tmpdir.'/htdocs/'.$modulenameval; - dol_syslog("We copy now directory ".$submodulenamedir." into target dir ".$dirins.'/'.$modulenameval); - $result = dolCopyDir($submodulenamedir, $dirins.'/'.$modulenameval, '0444', 1); + dol_syslog("We copy now directory ".$modulenamedir." into target dir ".$dirins.'/'.$modulenameval); + $result = dolCopyDir($modulenamedir, $dirins.'/'.$modulenameval, '0444', 1); if ($result <= 0) { - dol_syslog('Failed to call dolCopyDir result='.$result." with param ".$submodulenamedir." and ".$dirins.'/'.$modulenameval, LOG_WARNING); + dol_syslog('Failed to call dolCopyDir result='.$result." with param ".$modulenamedir." and ".$dirins.'/'.$modulenameval, LOG_WARNING); $langs->load("errors"); - setEventMessages($langs->trans("ErrorFailToCopyDir", $submodulenamedir, $dirins.'/'.$modulenameval), null, 'errors'); + setEventMessages($langs->trans("ErrorFailToCopyDir", $modulenamedir, $dirins.'/'.$modulenameval), null, 'errors'); $error++; } } From f9b2c3d91d77db9aee75ed7fa257992d6752be4c Mon Sep 17 00:00:00 2001 From: Juanjo Menent Date: Mon, 27 Mar 2023 11:22:51 +0200 Subject: [PATCH 2/7] Fix: More accurate fix --- htdocs/admin/modules.php | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/htdocs/admin/modules.php b/htdocs/admin/modules.php index 980d39a12a5..ac8ff6161a9 100644 --- a/htdocs/admin/modules.php +++ b/htdocs/admin/modules.php @@ -230,12 +230,16 @@ if ($action == 'install') { // Now we install the module if (!$error) { @dol_delete_dir_recursive($dirins.'/'.$modulenameval); // delete the target directory - dol_syslog("We copy now directory ".$modulenamedir." into target dir ".$dirins.'/'.$modulenameval); - $result = dolCopyDir($modulenamedir, $dirins.'/'.$modulenameval, '0444', 1); + $submodulenamedir = $conf->admin->dir_temp.'/'.$tmpdir.'/'.$modulenameval; + if (!dol_is_dir($modulenamedir)) { + $submodulenamedir = $conf->admin->dir_temp.'/'.$tmpdir.'/htdocs/'.$modulenameval; + } + dol_syslog("We copy now directory ".$submodulenamedir." into target dir ".$dirins.'/'.$modulenameval); + $result = dolCopyDir($submodulenamedir, $dirins.'/'.$modulenameval, '0444', 1); if ($result <= 0) { - dol_syslog('Failed to call dolCopyDir result='.$result." with param ".$modulenamedir." and ".$dirins.'/'.$modulenameval, LOG_WARNING); + dol_syslog('Failed to call dolCopyDir result='.$result." with param ".$submodulenamedir." and ".$dirins.'/'.$modulenameval, LOG_WARNING); $langs->load("errors"); - setEventMessages($langs->trans("ErrorFailToCopyDir", $modulenamedir, $dirins.'/'.$modulenameval), null, 'errors'); + setEventMessages($langs->trans("ErrorFailToCopyDir", $submodulenamedir, $dirins.'/'.$modulenameval), null, 'errors'); $error++; } } From a31491fce28576c8fde07bf096e017af79ab131a Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 28 Mar 2023 22:27:14 +0200 Subject: [PATCH 3/7] Fix warning --- htdocs/core/modules/export/export_excel2007.modules.php | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/core/modules/export/export_excel2007.modules.php b/htdocs/core/modules/export/export_excel2007.modules.php index fba0dfa1c4a..92feafb3859 100644 --- a/htdocs/core/modules/export/export_excel2007.modules.php +++ b/htdocs/core/modules/export/export_excel2007.modules.php @@ -464,6 +464,7 @@ class ExportExcel2007 extends ModeleExports return ''; } + $letter = ''; while ($c != 0) { $p = ($c - 1) % 26; $c = intval(($c - $p) / 26); From 8556327499b5a8d15bb7e258619afe49a380171a Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 28 Mar 2023 23:53:16 +0200 Subject: [PATCH 4/7] Hide session ID --- htdocs/admin/system/browser.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/admin/system/browser.php b/htdocs/admin/system/browser.php index 7e2c772183d..f86b6404019 100644 --- a/htdocs/admin/system/browser.php +++ b/htdocs/admin/system/browser.php @@ -1,5 +1,5 @@ +/* Copyright (C) 2005-2023 Laurent Destailleur * Copyright (C) 2007 Rodolphe Quiedeville * Copyright (C) 2007-2012 Regis Houssin * @@ -65,7 +65,7 @@ if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { } print ''."\n"; print ''.$langs->trans("SessionName").''.session_name().''."\n"; -print ''.$langs->trans("SessionId").''.session_id().''."\n"; +print ''.$langs->trans("SessionId").'********'."\n"; print ''.$langs->trans("Screen").''; print $_SESSION['dol_screenwidth'].' x '.$_SESSION['dol_screenheight']; From b2722e79dc7a54fbae151eb27f4b69c1802eba96 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 29 Mar 2023 14:27:28 +0200 Subject: [PATCH 5/7] Doc --- .../includes/OAuth/Common/Storage/DoliStorage.php | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/htdocs/includes/OAuth/Common/Storage/DoliStorage.php b/htdocs/includes/OAuth/Common/Storage/DoliStorage.php index 60af1f631c6..145bc2add2b 100644 --- a/htdocs/includes/OAuth/Common/Storage/DoliStorage.php +++ b/htdocs/includes/OAuth/Common/Storage/DoliStorage.php @@ -236,8 +236,16 @@ class DoliStorage implements TokenStorageInterface */ public function clearAllTokens() { - // TODO - $this->conf->remove($this->key); + // TODO Remove token using a loop on each $service + /* + $servicepluskeyforprovider = $service; + if (!empty($this->keyforprovider)) { + // We clean the keyforprovider after the - to be sure it is not present + $servicepluskeyforprovider = preg_replace('/\-'.preg_quote($this->keyforprovider, '/').'$/', '', $servicepluskeyforprovider); + // Now we add the keyforprovider + $servicepluskeyforprovider .= '-'.$this->keyforprovider; + } + */ // allow chaining return $this; @@ -332,7 +340,6 @@ class DoliStorage implements TokenStorageInterface { // TODO // get previously saved tokens - //$states = $this->conf->get($this->stateKey); if (is_array($this->states) && array_key_exists($service, $this->states)) { unset($this->states[$service]); @@ -351,7 +358,6 @@ class DoliStorage implements TokenStorageInterface public function clearAllAuthorizationStates() { // TODO - //$this->conf->remove($this->stateKey); // allow chaining return $this; From f870a8ea2f90fcce6259b0c6ffff6c80847ef269 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Tue, 28 Mar 2023 22:16:04 +0200 Subject: [PATCH 6/7] work on printing --- htdocs/core/modules/printing/printgcp.modules.php | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/htdocs/core/modules/printing/printgcp.modules.php b/htdocs/core/modules/printing/printgcp.modules.php index c1b6ba6c86e..0a2d59368ec 100644 --- a/htdocs/core/modules/printing/printgcp.modules.php +++ b/htdocs/core/modules/printing/printgcp.modules.php @@ -121,7 +121,7 @@ class printing_printgcp extends PrintingDriver $this->google_id = getDolGlobalString('OAUTH_GOOGLE_ID'); $this->google_secret = getDolGlobalString('OAUTH_GOOGLE_SECRET'); // Token storage - $storage = new DoliStorage($this->db, $this->conf, $keyforprovider); + $storage = new DoliStorage($this->db, $conf, $keyforprovider); //$storage->clearToken($this->OAUTH_SERVICENAME_GOOGLE); // Setup the credentials for the requests $credentials = new Credentials( @@ -255,12 +255,13 @@ class printing_printgcp extends PrintingDriver */ public function getlistAvailablePrinters() { + global $conf; $ret = array(); $keyforprovider = ''; // @FIXME // Token storage - $storage = new DoliStorage($this->db, $this->conf, $keyforprovider); + $storage = new DoliStorage($this->db, $conf, $keyforprovider); // Setup the credentials for the requests $credentials = new Credentials( $this->google_id, @@ -376,7 +377,7 @@ class printing_printgcp extends PrintingDriver * @return array status array */ public function sendPrintToPrinter($printerid, $printjobtitle, $filepath, $contenttype) - { + {global $conf; // Check if printer id if (empty($printerid)) { return array('status' =>0, 'errorcode' =>'', 'errormessage'=>'No provided printer ID'); @@ -401,7 +402,7 @@ class printing_printgcp extends PrintingDriver $keyforprovider = ''; // @FIXME // Dolibarr Token storage - $storage = new DoliStorage($this->db, $this->conf, $keyforprovider); + $storage = new DoliStorage($this->db, $conf, $keyforprovider); // Setup the credentials for the requests $credentials = new Credentials( $this->google_id, From 222ad02e49c92c8cc62939030cbfff7adf237e0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Tue, 28 Mar 2023 22:17:38 +0200 Subject: [PATCH 7/7] work on printing --- htdocs/core/modules/printing/printgcp.modules.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/htdocs/core/modules/printing/printgcp.modules.php b/htdocs/core/modules/printing/printgcp.modules.php index 0a2d59368ec..d62dbd94ab2 100644 --- a/htdocs/core/modules/printing/printgcp.modules.php +++ b/htdocs/core/modules/printing/printgcp.modules.php @@ -377,7 +377,8 @@ class printing_printgcp extends PrintingDriver * @return array status array */ public function sendPrintToPrinter($printerid, $printjobtitle, $filepath, $contenttype) - {global $conf; + { + global $conf; // Check if printer id if (empty($printerid)) { return array('status' =>0, 'errorcode' =>'', 'errormessage'=>'No provided printer ID'); @@ -454,7 +455,7 @@ class printing_printgcp extends PrintingDriver $keyforprovider = ''; // @FIXME // Token storage - $storage = new DoliStorage($this->db, $this->conf, $keyforprovider); + $storage = new DoliStorage($this->db, $conf, $keyforprovider); // Setup the credentials for the requests $credentials = new Credentials( $this->google_id,