verification compares to destination timezone
This commit is contained in:
@@ -297,8 +297,8 @@ class Form extends Component
|
|||||||
|
|
||||||
// Improved verification
|
// Improved verification
|
||||||
$verificationCommands = [
|
$verificationCommands = [
|
||||||
"date +'%Z %:z'",
|
|
||||||
"readlink /etc/localtime | sed 's#/usr/share/zoneinfo/##'",
|
"readlink /etc/localtime | sed 's#/usr/share/zoneinfo/##'",
|
||||||
|
"date +'%Z %:z'"
|
||||||
];
|
];
|
||||||
$verificationResult = instant_remote_process($verificationCommands, $this->server, false);
|
$verificationResult = instant_remote_process($verificationCommands, $this->server, false);
|
||||||
$verificationLines = explode("\n", trim($verificationResult));
|
$verificationLines = explode("\n", trim($verificationResult));
|
||||||
@@ -309,16 +309,16 @@ class Form extends Component
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
[$abbreviation, $offset] = explode(' ', $verificationLines[0]);
|
$actualTimezone = trim($verificationLines[0]);
|
||||||
$actualTimezone = trim($verificationLines[1]);
|
[$abbreviation, $offset] = explode(' ', trim($verificationLines[1]));
|
||||||
|
|
||||||
// Convert desired_timezone to DateTimeZone for comparison
|
// Convert desired_timezone to DateTimeZone for comparison
|
||||||
$desiredTz = new \DateTimeZone($desired_timezone);
|
$desiredTz = new \DateTimeZone($desired_timezone);
|
||||||
$desiredAbbr = (new \DateTime('now', $desiredTz))->format('T');
|
$desiredAbbr = (new \DateTime('now', $desiredTz))->format('T');
|
||||||
$desiredOffset = $desiredTz->getOffset(new \DateTime('now', $desiredTz));
|
$desiredOffset = $this->formatOffset($desiredTz->getOffset(new \DateTime('now', $desiredTz)));
|
||||||
|
|
||||||
// Compare abbreviation, offset, and actual timezone
|
// Compare actual timezone, abbreviation, and offset with the desired timezone
|
||||||
if ($abbreviation === $desiredAbbr && $offset === $this->formatOffset($desiredOffset) && $actualTimezone === $desired_timezone) {
|
if ($actualTimezone === $desired_timezone && $abbreviation === $desiredAbbr && $offset === $desiredOffset) {
|
||||||
ray('Timezone update verified successfully');
|
ray('Timezone update verified successfully');
|
||||||
$this->server->settings->server_timezone = $desired_timezone;
|
$this->server->settings->server_timezone = $desired_timezone;
|
||||||
$this->server->settings->save();
|
$this->server->settings->save();
|
||||||
@@ -326,6 +326,8 @@ class Form extends Component
|
|||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
ray('Timezone verification failed. Expected:', $desired_timezone, 'Actual:', $actualTimezone);
|
ray('Timezone verification failed. Expected:', $desired_timezone, 'Actual:', $actualTimezone);
|
||||||
|
ray('Expected abbreviation:', $desiredAbbr, 'Actual:', $abbreviation);
|
||||||
|
ray('Expected offset:', $desiredOffset, 'Actual:', $offset);
|
||||||
$this->dispatch('error', 'Failed to update server timezone. The server reported a different timezone than requested.');
|
$this->dispatch('error', 'Failed to update server timezone. The server reported a different timezone than requested.');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user