SyncPropertyForm: fix error on list sync

fixes #836
This commit is contained in:
Thomas Gelf 2017-03-08 17:04:50 +01:00
parent 41868de7f1
commit e6e51dc2be
1 changed files with 11 additions and 6 deletions

View File

@ -288,24 +288,29 @@ class SyncPropertyForm extends DirectorObjectForm
} }
foreach ($dummy->listProperties() as $prop) { foreach ($dummy->listProperties() as $prop) {
if ($prop === 'id') { if ($dummy instanceof IcingaObject && $prop === 'id') {
continue; continue;
} }
// TODO: allow those fields, but munge them (store ids) // TODO: allow those fields, but munge them (store ids)
//if (preg_match('~_id$~', $prop)) continue; //if (preg_match('~_id$~', $prop)) continue;
if (substr($prop, -3) === '_id') { if (substr($prop, -3) === '_id') {
$prop = substr($prop, 0, -3); if ($dummy instanceof IcingaObject) {
if (! $dummy instanceof IcingaObject || ! $dummy->hasRelation($prop)) { if ($dummy->hasRelation($prop)) {
continue; $prop = substr($prop, 0, -3);
} else {
continue;
}
} }
} }
$props[$prop] = $prop; $props[$prop] = $prop;
} }
foreach ($dummy->listMultiRelations() as $prop) { if ($dummy instanceof IcingaObject) {
$props[$prop] = sprintf('%s (%s)', $prop, $this->translate('a list')); foreach ($dummy->listMultiRelations() as $prop) {
$props[$prop] = sprintf('%s (%s)', $prop, $this->translate('a list'));
}
} }
ksort($props); ksort($props);