diff --git a/include/class_baseSelector.inc b/include/class_baseSelector.inc index 6f0ad4d75ad499a63e66467f996d9a6b27581de3..c88485e6c05ec96496275dc16ea9a6a4644dd383 100644 --- a/include/class_baseSelector.inc +++ b/include/class_baseSelector.inc @@ -142,7 +142,7 @@ class baseSelector { { global $config; - if (!isset($this->base) || ($this->base == "")) { + if (!isset($this->base) || ($this->base == '')) { $this->lastState = FALSE; return FALSE; } @@ -179,7 +179,6 @@ class baseSelector { } } } - } /* Skip if there's no change */ diff --git a/include/class_template.inc b/include/class_template.inc index 5299a4675fb26af94cf610fb7206d2877a8f90c8..e780b2c21c97fbc3620fa524225d34b5c169ecdd 100644 --- a/include/class_template.inc +++ b/include/class_template.inc @@ -194,6 +194,11 @@ class template { if ($targetdn !== NULL) { $this->tabObject = objects::open($targetdn, $this->type); + foreach ($this->tabObject->by_object as $class => &$plugin) { + if ($plugin->is_account || $plugin->ignore_account) { + $this->attrs['objectClass'] = $plugin->mergeObjectClasses($this->attrs['objectClass']); + } + } } elseif ($this->applied) { trigger_error('Templates can’t be applied twice without calling reset before'); return; diff --git a/include/simpleplugin/class_simplePlugin.inc b/include/simpleplugin/class_simplePlugin.inc index e64dec1883b5c2e5bd01b5a85680062ab3d36c70..4d65e7b80e98a87a425b64babcbfa7de3bac3243 100644 --- a/include/simpleplugin/class_simplePlugin.inc +++ b/include/simpleplugin/class_simplePlugin.inc @@ -1197,6 +1197,12 @@ class simplePlugin return !empty($this->attrs); } + /* Used by prepare_save and template::apply */ + public function mergeObjectClasses(array $oc) + { + return array_merge_unique($oc, $this->objectclasses); + } + protected function prepare_save () { global $config; @@ -1229,7 +1235,7 @@ class simplePlugin } } - $this->attrs['objectClass'] = array_merge_unique($oc, $this->objectclasses); + $this->attrs['objectClass'] = $this->mergeObjectClasses($oc); /* Fill attributes LDAP values into the attrs array */ foreach ($this->attributesInfo as $section => $sectionInfo) {