Merge remote-tracking branch 'origin/support/3.1' into develop

This commit is contained in:
Molkobain
2023-12-07 12:40:00 +01:00
4 changed files with 15 additions and 5 deletions

View File

@@ -4267,16 +4267,17 @@ abstract class MetaModel
];
IssueLog::Warning("Unresolved placeholders due to null object in current context", null,
$aContext);
$aPlaceholders[$sPlaceHolderKey] = \Dict::Format("Core:Placeholder:CannotBeResolved", $sPlaceHolderKey);
$aPlaceholders[$sPlaceHolderKey] = Dict::Format("Core:Placeholder:CannotBeResolved", $sPlaceHolderKey);
foreach ($aCurrentUser as $sField) {
$sPlaceHolderKey = $sPlaceHolderPrefix . "->$sField";
$aPlaceholders[$sPlaceHolderKey] = \Dict::Format("Core:Placeholder:CannotBeResolved", $sPlaceHolderKey);
$aPlaceholders[$sPlaceHolderKey] = Dict::Format("Core:Placeholder:CannotBeResolved", $sPlaceHolderKey);
}
} else {
$aPlaceholders[$sPlaceHolderKey] = $oObject;
foreach ($aCurrentUser as $sField) {
$sPlaceHolderKey = $sPlaceHolderPrefix . "->$sField";
if (false === MetaModel::IsValidAttCode(get_class($oObject), $sField)){
// Mind that the "id" is not viewed as a valid att. code by \MetaModel::IsValidAttCode() so we have to test it manually
if ($sField !== "id" && false === MetaModel::IsValidAttCode(get_class($oObject), $sField)){
$aContext = [
"current_user_id" => UserRights::GetUserId(),
"obj_class" => get_class($oObject),
@@ -4285,7 +4286,7 @@ abstract class MetaModel
];
IssueLog::Warning("Unresolved placeholder due to invalid attribute", null,
$aContext);
$aPlaceholders[$sPlaceHolderKey] = \Dict::Format("Core:Placeholder:CannotBeResolved", $sPlaceHolderKey);
$aPlaceholders[$sPlaceHolderKey] = Dict::Format("Core:Placeholder:CannotBeResolved", $sPlaceHolderKey);
continue;
}

View File

@@ -1404,7 +1404,7 @@ class ObjectFormManager extends FormManager
}
}
/** @var SecurityHelper $oSecurityHelper */
$oSecurityHelper = $this->oContainer->get('security_helper');
$oSecurityHelper = $this->oFormHandlerHelper->GetSecurityHelper();
// N°7023 - Note that we check for ext. key now as we want the check to be done on user inputs and NOT on ext. keys set programatically, so it must be done before the DoComputeValues
$this->oObject->CheckChangedExtKeysValues(function ($sClass, $sId) use ($oSecurityHelper): bool {
return $oSecurityHelper->IsActionAllowed(UR_ACTION_READ, $sClass, $sId);

View File

@@ -178,6 +178,9 @@ class QueryTest extends ItopDataTestCase
curl_setopt($curl, CURLOPT_USERPWD, self::USER . ':' . self::PASSWORD);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
// Force disable of certificate check as most of dev / test env have a self-signed certificate
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
// execute curl
$result = curl_exec($curl);

View File

@@ -79,7 +79,10 @@ class MetaModelMagicPlaceholderTest extends ItopDataTestCase
new VariableExpression('current_user->login'),
new VariableExpression('current_user->not_existing_attribute'),
new VariableExpression('current_contact_id'),
new VariableExpression('current_contact->id'),
new VariableExpression('current_contact->friendlyname'),
new VariableExpression('current_contact->org_id'),
new VariableExpression('current_contact->org_id_friendlyname'),
new VariableExpression('current_contact->not_existing_attribute'),
];
$aPlaceholders = MetaModel::AddMagicPlaceholders(['gabu' => "zomeu"], $aExpectedArgs);
@@ -91,7 +94,10 @@ class MetaModelMagicPlaceholderTest extends ItopDataTestCase
'current_user->not_existing_attribute' => '(current_user->not_existing_attribute : cannot be resolved)',
'current_user->login' => $sLogin,
'current_contact->object()' => $oPerson,
'current_contact->id' => $oPerson->GetKey(),
'current_contact->friendlyname' => $oPerson->GetName(),
'current_contact->org_id' => $oPerson->Get('org_id'),
'current_contact->org_id_friendlyname' => $oPerson->Get('org_id_friendlyname'),
'current_contact->not_existing_attribute' => '(current_contact->not_existing_attribute : cannot be resolved)',
],
$aPlaceholders,