From 2c1c8b9bf7f244ddd7bef2a40ade49f7a714a8e0 Mon Sep 17 00:00:00 2001 From: Roland Gruber Date: Fri, 27 Nov 2009 09:56:47 +0000 Subject: [PATCH] fixed schema check --- lam/lib/modules/dhcp_settings.inc | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/lam/lib/modules/dhcp_settings.inc b/lam/lib/modules/dhcp_settings.inc index d2aca48d..8e7a6cd2 100644 --- a/lam/lib/modules/dhcp_settings.inc +++ b/lam/lib/modules/dhcp_settings.inc @@ -109,7 +109,7 @@ class dhcp_settings extends baseModule { // module dependencies $return['dependencies'] = array('depends' => array(), 'conflicts' => array()); // managed object classes - $return['objectClasses'] = array('top', 'dhcpOptions'); + $return['objectClasses'] = array('top', 'dhcpOptions', 'dhcpSubnet'); // managed attributes $return['attributes'] = array('cn', 'dhcpOption', 'dhcpComments', 'dhcpNetMask', 'dhcpStatements'); // help Entries @@ -332,14 +332,13 @@ By default, the nodes are configured as H-Nodes which fits for small networks. I * lamdaemon are lamdaemon commands to modify homedir, quotas, ... */ public function save_attributes() { - if ($this->getAccountContainer()->dn_orig!=$_SESSION['config']->get_suffix('dhcp')) { - // add object class - if (!in_array_ignore_case("dhcpSubnet", $this->attributes['objectClass'])) { - $this->attributes['objectClass'][] = "dhcpSubnet"; + // remove dhcpSubnet object class if only the DHCP settings were changed + if ($this->getAccountContainer()->dn_orig == $_SESSION['config']->get_suffix('dhcp')) { + if (!in_array_ignore_case("dhcpSubnet", $this->orig['objectClass']) && in_array_ignore_case("dhcpSubnet", $this->attributes['objectClass'])) { + $this->attributes['objectClass'] = array_delete(array("dhcpSubnet"), $this->attributes['objectClass']); } } - $return = $this->getAccountContainer()->save_module_attributes($this->attributes, $this->orig); - // Return attributes + $return = parent::save_attributes(); return $return; }