mirror of
https://github.com/Icinga/icingaweb2-module-director.git
synced 2025-07-29 00:34:05 +02:00
DirectorDatafield: prefer list uuid...
...on basket restore
This commit is contained in:
parent
14604b64d6
commit
02d6ebb0af
@ -4,6 +4,7 @@ namespace Icinga\Module\Director\Objects;
|
|||||||
|
|
||||||
use Icinga\Module\Director\Data\Db\DbObjectWithSettings;
|
use Icinga\Module\Director\Data\Db\DbObjectWithSettings;
|
||||||
use Icinga\Module\Director\Db;
|
use Icinga\Module\Director\Db;
|
||||||
|
use Icinga\Module\Director\DirectorObject\Automation\BasketSnapshotFieldResolver;
|
||||||
use Icinga\Module\Director\DirectorObject\Automation\CompareBasketObject;
|
use Icinga\Module\Director\DirectorObject\Automation\CompareBasketObject;
|
||||||
use Icinga\Module\Director\Forms\IcingaServiceForm;
|
use Icinga\Module\Director\Forms\IcingaServiceForm;
|
||||||
use Icinga\Module\Director\Hook\DataTypeHook;
|
use Icinga\Module\Director\Hook\DataTypeHook;
|
||||||
@ -146,7 +147,7 @@ class DirectorDatafield extends DbObjectWithSettings
|
|||||||
if ($uuid = $plain->uuid ?? null) {
|
if ($uuid = $plain->uuid ?? null) {
|
||||||
$uuid = Uuid::fromString($uuid);
|
$uuid = Uuid::fromString($uuid);
|
||||||
if ($candidate = DirectorDatafield::loadWithUniqueId($uuid, $db)) {
|
if ($candidate = DirectorDatafield::loadWithUniqueId($uuid, $db)) {
|
||||||
self::fixOptionalDatalistReference($plain, $db);
|
BasketSnapshotFieldResolver::fixOptionalDatalistReference($plain, $db);
|
||||||
assert($candidate instanceof DirectorDatafield);
|
assert($candidate instanceof DirectorDatafield);
|
||||||
$candidate->setProperties((array) $plain);
|
$candidate->setProperties((array) $plain);
|
||||||
return $candidate;
|
return $candidate;
|
||||||
@ -164,21 +165,11 @@ class DirectorDatafield extends DbObjectWithSettings
|
|||||||
return $candidate;
|
return $candidate;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
self::fixOptionalDatalistReference($plain, $db);
|
BasketSnapshotFieldResolver::fixOptionalDatalistReference($plain, $db);
|
||||||
|
|
||||||
return static::create((array) $plain, $db);
|
return static::create((array) $plain, $db);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected static function fixOptionalDatalistReference(stdClass $plain, Db $db)
|
|
||||||
{
|
|
||||||
if (isset($plain->settings->datalist)) {
|
|
||||||
// Just try to load the list, import should fail if missing
|
|
||||||
$list = DirectorDatalist::load($plain->settings->datalist, $db);
|
|
||||||
unset($plain->settings->datalist);
|
|
||||||
$plain->settings->datalist_id = $list->get('id');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function beforeStore()
|
protected function beforeStore()
|
||||||
{
|
{
|
||||||
if ($this->category) {
|
if ($this->category) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user