Update installer to handle chan-sccp parsable fields

chan-sccp has parsable fields where two values are separated by a |.
Parse these fields and their associated values and create two fields.
Remove the unparsed field if it exists.
This commit is contained in:
steve-lad 2021-07-06 11:54:46 +02:00
parent fea6d88aa5
commit 8b06495938
2 changed files with 44 additions and 23 deletions

View file

@ -978,14 +978,37 @@ function cleanUpSccpSettings() {
if ($valueArray['Flags'][0] == 'Obsolete' || $valueArray['Flags'][0] == 'Deprecated') { if ($valueArray['Flags'][0] == 'Obsolete' || $valueArray['Flags'][0] == 'Deprecated') {
continue; continue;
} }
// 2 special cases deny|permit & disallow|allow where need to parse on |.
$newKeyword = explode("|", $valueArray['Name'], 2);
if (isset($newKeyword[1])) {
dbug('',$newKeyword);
$newSysDef = explode("|", $valueArray['DefaultValue'], 2);
$i = 0;
foreach ($newKeyword as $dummy) {
if (array_key_exists($newKeyword[$i],$settingsFromDb)) {
if (!empty($newSysDef[$i])) {
$settingsFromDb[$newKeyword[$i]]['systemdefault'] = $newSysDef[$i];
}
} else {
$settingsFromDb[$newKeyword[$i]] = array('keyword' => $newKeyword[$i], 'seq' => 0, 'type' => 0, 'data' => '', 'systemdefault' => $newSysDef[$i]);
}
$i++;
}
if (array_key_exists($valueArray['Name'],$settingsFromDb)){
unset($settingsFromDb[$valueArray['Name']]);
}
} else {
$sysConfiguration[$valueArray['Name']] = $valueArray; $sysConfiguration[$valueArray['Name']] = $valueArray;
if (array_key_exists($valueArray['Name'],$settingsFromDb)) { if (array_key_exists($valueArray['Name'],$settingsFromDb)) {
if (!empty($sysConfiguration[$valueArray['Name']]['DefaultValue'])) { if (!empty($sysConfiguration[$valueArray['Name']]['DefaultValue'])) {
$settingsFromDb[$valueArray['Name']]['systemdefault'] = $sysConfiguration[$valueArray['Name']]['DefaultValue']; $settingsFromDb[$valueArray['Name']]['systemdefault'] = $sysConfiguration[$valueArray['Name']]['DefaultValue'];
} }
} else { } else {
$settingsFromDb[$valueArray['Name']] = array('keyword' => $valueArray['Name'], 'seq' => 0, 'type' => 0, 'data' => '', 'systemdefault' => $sysConfiguration[$valueArray['Name']]['DefaultValue']); $settingsFromDb[$valueArray['Name']] = array('keyword' => $valueArray['Name'], 'seq' => 0, 'type' => 0, 'data' => '', 'systemdefault' => $sysConfiguration[$valueArray['Name']]['DefaultValue']);
} }
}
unset($sysConfiguration[$key]); unset($sysConfiguration[$key]);
} }
unset($sysConfiguration['Options']); unset($sysConfiguration['Options']);

View file

@ -286,7 +286,6 @@ class xmlinterface
$xml_work->$key = time(); $xml_work->$key = time();
break; break;
case 'loadinformation': case 'loadinformation':
// Set Path Image ????
if (isset($dev_config["tftp_firmware"])) { if (isset($dev_config["tftp_firmware"])) {
$xml_work->$key = (isset($dev_config["loadimage"])) ? $dev_config["tftp_firmware"] . $dev_config["loadimage"] : ''; $xml_work->$key = (isset($dev_config["loadimage"])) ? $dev_config["tftp_firmware"] . $dev_config["loadimage"] : '';
} else { } else {
@ -306,7 +305,6 @@ class xmlinterface
} }
} }
} }
}
break; break;
case 'commonprofile': case 'commonprofile':
$xml_node->phonePassword = $data_values['dev_sshPassword']; $xml_node->phonePassword = $data_values['dev_sshPassword'];