diff --git a/dev/tools/rector/src/Renaming/GlobalToFunction.php b/dev/tools/rector/src/Renaming/GlobalToFunction.php index 03b797c81b1..656a7d4ff59 100644 --- a/dev/tools/rector/src/Renaming/GlobalToFunction.php +++ b/dev/tools/rector/src/Renaming/GlobalToFunction.php @@ -21,10 +21,12 @@ use Rector\Php71\ValueObject\TwoNodeMatch; use Symplify\RuleDocGenerator\Exception\PoorDocumentationException; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; +use PhpParser\Node\Expr\BinaryOp\NotEqual; use PhpParser\Node\Expr\BinaryOp\Greater; use PhpParser\Node\Expr\BinaryOp\GreaterOrEqual; use PhpParser\Node\Expr\BinaryOp\Smaller; use PhpParser\Node\Expr\BinaryOp\SmallerOrEqual; +use PhpParser\Node\Expr\BinaryOp\NotIdentical; /** * Class with Rector custom rule to fix code @@ -55,7 +57,7 @@ class GlobalToFunction extends AbstractRector public function getRuleDefinition(): RuleDefinition { return new RuleDefinition( - 'Change $conf->global to getDolGlobal', + 'Change $conf->global to getDolGlobal in context (1) conf->global Operator Value or (2) function(conf->global...)', [new CodeSample( '$conf->global->CONSTANT', 'getDolGlobalInt(\'CONSTANT\')' @@ -70,7 +72,7 @@ class GlobalToFunction extends AbstractRector */ public function getNodeTypes(): array { - return [FuncCall::class, Equal::class, Greater::class, GreaterOrEqual::class, Smaller::class, SmallerOrEqual::class, BooleanAnd::class, Concat::class, ArrayDimFetch::class]; + return [FuncCall::class, Equal::class, NotEqual::class, Greater::class, GreaterOrEqual::class, Smaller::class, SmallerOrEqual::class, NotIdentical::class, BooleanAnd::class, Concat::class, ArrayDimFetch::class]; } /** @@ -101,7 +103,7 @@ class GlobalToFunction extends AbstractRector if ($node instanceof FuncCall) { $tmpfunctionname = $this->getName($node); - if (in_array($tmpfunctionname, array('dol_escape_htmltag', 'make_substitutions', 'min', 'max'))) { + if (in_array($tmpfunctionname, array('dol_escape_htmltag', 'make_substitutions', 'min', 'max', 'explode'))) { $args = $node->getArgs(); $nbofparam = count($args); @@ -126,6 +128,7 @@ class GlobalToFunction extends AbstractRector } return $node; } + if ($node instanceof Concat) { if ($this->isGlobalVar($node->left)) { $constName = $this->getConstName($node->left); @@ -154,6 +157,7 @@ class GlobalToFunction extends AbstractRector } return new Concat($leftConcat, $rightConcat); } + if ($node instanceof BooleanAnd) { $nodes = $this->resolveTwoNodeMatch($node); if (!isset($nodes)) { @@ -164,10 +168,16 @@ class GlobalToFunction extends AbstractRector $node = $nodes->getFirstExpr(); } + // Now process all comparison like: + // $conf->global->... Operator Value + $typeofcomparison = ''; if ($node instanceof Equal) { $typeofcomparison = 'Equal'; } + if ($node instanceof NotEqual) { + $typeofcomparison = 'NotEqual'; + } if ($node instanceof Greater) { $typeofcomparison = 'Greater'; } @@ -180,6 +190,10 @@ class GlobalToFunction extends AbstractRector if ($node instanceof SmallerOrEqual) { $typeofcomparison = 'SmallerOrEqual'; } + if ($node instanceof NotIdentical) { + $typeofcomparison = 'NotIdentical'; + //var_dump($node->left); + } if (empty($typeofcomparison)) { return; } @@ -189,7 +203,8 @@ class GlobalToFunction extends AbstractRector } // Test the type after the comparison conf->global->xxx to know the name of function - switch ($node->right->getType()) { + $typeright = $node->right->getType(); + switch ($typeright) { case 'Scalar_LNumber': $funcName = 'getDolGlobalInt'; break; @@ -214,6 +229,15 @@ class GlobalToFunction extends AbstractRector $node->right ); } + if ($typeofcomparison == 'NotEqual') { + return new NotEqual( + new FuncCall( + new Name($funcName), + [new Arg($constName)] + ), + $node->right + ); + } if ($typeofcomparison == 'Greater') { return new Greater( new FuncCall( @@ -250,6 +274,15 @@ class GlobalToFunction extends AbstractRector $node->right ); } + if ($typeofcomparison == 'NotIdentical') { + return new NotIdentical( + new FuncCall( + new Name($funcName), + [new Arg($constName)] + ), + $node->right + ); + } } /** @@ -262,7 +295,7 @@ class GlobalToFunction extends AbstractRector { return $this->binaryOpManipulator->matchFirstAndSecondConditionNode( $booleanAnd, - // $conf->global == $value + // Function to check if we are in the case $conf->global->... == $value function (Node $node): bool { if (!$node instanceof Equal) { return \false; diff --git a/htdocs/adherents/admin/member.php b/htdocs/adherents/admin/member.php index 06416f19039..b78cd367c9d 100644 --- a/htdocs/adherents/admin/member.php +++ b/htdocs/adherents/admin/member.php @@ -428,7 +428,7 @@ if (isModEnabled('facture')) { if (isModEnabled("product") || isModEnabled("service")) { print ''.$langs->trans("ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS").''; print ''; - $selected = (!getDolGlobalString('ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS') ? '' : $conf->global->ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS); + $selected = getDolGlobalString('ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS'); print img_picto('', 'product', 'class="pictofixedwidth"'); $form->select_produits($selected, 'ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS', '', 0); print ''; diff --git a/htdocs/adherents/class/adherent.class.php b/htdocs/adherents/class/adherent.class.php index 294e0c4689d..51af75d9591 100644 --- a/htdocs/adherents/class/adherent.class.php +++ b/htdocs/adherents/class/adherent.class.php @@ -1151,7 +1151,6 @@ class Adherent extends CommonObject // Mise a jour $sql = "UPDATE ".MAIN_DB_PREFIX."adherent"; $sql .= " SET pass_crypted = '".$this->db->escape($password_crypted)."'"; - //if (!empty($conf->global->DATABASE_PWD_ENCRYPTED)) if ($isencrypted) { $sql .= ", pass = null"; } else { @@ -1921,7 +1920,7 @@ class Adherent extends CommonObject $outputlangs->setDefaultLang($newlang); } // Generate PDF (whatever is option MAIN_DISABLE_PDF_AUTOUPDATE) so we can include it into email - //if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) + //if (!getDolGlobalString('MAIN_DISABLE_PDF_AUTOUPDATE')) $invoice->generateDocument($invoice->model_pdf, $outputlangs); } @@ -2727,7 +2726,7 @@ class Adherent extends CommonObject $keymodified = false; // Object classes - $info["objectclass"] = explode(',', $conf->global->LDAP_MEMBER_OBJECT_CLASS); + $info["objectclass"] = explode(',', getDolGlobalString('LDAP_MEMBER_OBJECT_CLASS')); $this->fullname = $this->getFullName($langs); @@ -2752,7 +2751,7 @@ class Adherent extends CommonObject $info[getDolGlobalString($constname)] = $this->$varname; // Check if it is the LDAP key and if its value has been changed - if (getDolGlobalString('LDAP_KEY_MEMBERS') && $conf->global->LDAP_KEY_MEMBERS == getDolGlobalString($constname)) { + if (getDolGlobalString('LDAP_KEY_MEMBERS') && getDolGlobalString('LDAP_KEY_MEMBERS') == getDolGlobalString($constname)) { if (!empty($this->oldcopy) && $this->$varname != $this->oldcopy->$varname) { $keymodified = true; // For check if LDAP key has been modified } @@ -2821,15 +2820,15 @@ class Adherent extends CommonObject if (getDolGlobalString('LDAP_MEMBER_FIELD_PASSWORD_CRYPTED')) { $info[getDolGlobalString('LDAP_MEMBER_FIELD_PASSWORD_CRYPTED')] = dol_hash($this->pass, 'openldap'); // Create OpenLDAP password (see LDAP_PASSWORD_HASH_TYPE) } - } elseif ($conf->global->LDAP_SERVER_PROTOCOLVERSION !== '3') { + } elseif (getDolGlobalString('LDAP_SERVER_PROTOCOLVERSION') !== '3') { // Set LDAP password if possible // If ldap key is modified and LDAPv3 we use ldap_rename function for avoid lose encrypt password - if (getDolGlobalString('DATABASE_PWD_ENCRYPTED')) { - // Just for the default MD5 ! - if (!getDolGlobalString('MAIN_SECURITY_HASH_ALGO')) { + if (getDolGlobalString('DATABASE_PWD_ENCRYPTED')) { // This should be on on default installation + // Just for the case we use old md5 encryption (deprecated, no more used, kept for compatibility) + if (!getDolGlobalString('MAIN_SECURITY_HASH_ALGO') || getDolGlobalString('MAIN_SECURITY_HASH_ALGO') == 'md5') { if ($this->pass_indatabase_crypted && getDolGlobalString('LDAP_MEMBER_FIELD_PASSWORD_CRYPTED')) { // Create OpenLDAP MD5 password from Dolibarr MD5 password - // Note: This suppose that "pass_indatabase_crypted" is a md5 (guaranted by the previous test if "(empty($conf->global->MAIN_SECURITY_HASH_ALGO))" + // Note: This suppose that "pass_indatabase_crypted" is a md5 (this should not happen anymore)" $info[getDolGlobalString('LDAP_MEMBER_FIELD_PASSWORD_CRYPTED')] = dolGetLdapPasswordHash($this->pass_indatabase_crypted, 'md5frommd5'); } } diff --git a/htdocs/adherents/class/adherent_type.class.php b/htdocs/adherents/class/adherent_type.class.php index c75ec565b35..4832a4242e7 100644 --- a/htdocs/adherents/class/adherent_type.class.php +++ b/htdocs/adherents/class/adherent_type.class.php @@ -844,7 +844,7 @@ class AdherentType extends CommonObject $dn = getDolGlobalString('LDAP_KEY_MEMBERS_TYPES') . "=".$info[getDolGlobalString('LDAP_KEY_MEMBERS_TYPES')]."," . getDolGlobalString('LDAP_MEMBER_TYPE_DN'); } if ($mode == 1) { - $dn = $conf->global->LDAP_MEMBER_TYPE_DN; + $dn = getDolGlobalString('LDAP_MEMBER_TYPE_DN'); } if ($mode == 2) { $dn = getDolGlobalString('LDAP_KEY_MEMBERS_TYPES') . "=".$info[getDolGlobalString('LDAP_KEY_MEMBERS_TYPES')]; @@ -868,7 +868,7 @@ class AdherentType extends CommonObject $info = array(); // Object classes - $info["objectclass"] = explode(',', $conf->global->LDAP_MEMBER_TYPE_OBJECT_CLASS); + $info["objectclass"] = explode(',', getDolGlobalString('LDAP_MEMBER_TYPE_OBJECT_CLASS')); if (empty($this->note_public) && !empty($this->note)) { // For backward compatibility $this->note_public = $this->note; diff --git a/htdocs/adherents/subscription.php b/htdocs/adherents/subscription.php index 182957bc97d..511553b9e88 100644 --- a/htdocs/adherents/subscription.php +++ b/htdocs/adherents/subscription.php @@ -1056,7 +1056,7 @@ if (($action == 'addsubscription' || $action == 'create_thirdparty') && $user->h print $langs->trans("CreateDolibarrThirdParty"); print ')'; } - if (!getDolGlobalString('ADHERENT_VAT_FOR_SUBSCRIPTIONS') || $conf->global->ADHERENT_VAT_FOR_SUBSCRIPTIONS != 'defaultforfoundationcountry') { + if (!getDolGlobalString('ADHERENT_VAT_FOR_SUBSCRIPTIONS') || getDolGlobalString('ADHERENT_VAT_FOR_SUBSCRIPTIONS') != 'defaultforfoundationcountry') { print '. '.$langs->trans("NoVatOnSubscription", 0).''; } if (getDolGlobalString('ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS') && (isModEnabled('product') || isModEnabled('service'))) { @@ -1086,7 +1086,7 @@ if (($action == 'addsubscription' || $action == 'create_thirdparty') && $user->h print $langs->trans("CreateDolibarrThirdParty"); print ')'; } - if (!getDolGlobalString('ADHERENT_VAT_FOR_SUBSCRIPTIONS') || $conf->global->ADHERENT_VAT_FOR_SUBSCRIPTIONS != 'defaultforfoundationcountry') { + if (!getDolGlobalString('ADHERENT_VAT_FOR_SUBSCRIPTIONS') || getDolGlobalString('ADHERENT_VAT_FOR_SUBSCRIPTIONS') != 'defaultforfoundationcountry') { print '. '.$langs->trans("NoVatOnSubscription", 0).''; } if (getDolGlobalString('ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS') && (isModEnabled('product')|| isModEnabled('service'))) {