$tmp = $app->db->queryOneRecord("SELECT groupid FROM sys_group WHERE client_id = " . intval($this->id)); $groupid = $tmp['groupid']; unset($tmp); //* Remove sys_user of old reseller from client group if ($this->oldDataRecord['parent_client_id'] > 0) { //* get userid of the old reseller remove it from the group of the client $tmp = $app->db->queryOneRecord("SELECT sys_user.userid FROM sys_user,sys_group WHERE sys_user.default_group = sys_group.groupid AND sys_group.client_id = " . $app->functions->intval($this->oldDataRecord['parent_client_id'])); $app->auth->remove_group_from_user($tmp['userid'], $groupid); unset($tmp); } //* Add sys_user of new reseller to client group if ($this->dataRecord['parent_client_id'] > 0) { //* get userid of the reseller and add it to the group of the client $tmp = $app->db->queryOneRecord("SELECT sys_user.userid, sys_user.default_group FROM sys_user,sys_group WHERE sys_user.default_group = sys_group.groupid AND sys_group.client_id = " . $app->functions->intval($this->dataRecord['parent_client_id'])); $app->auth->add_group_to_user($tmp['userid'], $groupid); $app->db->query("UPDATE client SET sys_userid = " . $app->functions->intval($tmp['userid']) . ", sys_groupid = " . $app->functions->intval($tmp['default_group']) . ", parent_client_id = " . $app->functions->intval($this->dataRecord['parent_client_id']) . " WHERE client_id = " . $this->id); unset($tmp); } else { //* Client is not assigned to a reseller anymore, so we assign it to the admin $app->db->query("UPDATE client SET sys_userid = 1, sys_groupid = 1, parent_client_id = 0 WHERE client_id = " . $this->id); } } if (isset($this->dataRecord['template_master'])) { $app->uses('client_templates'); $app->client_templates->update_client_templates($this->id, $this->_template_additional); } parent::onAfterUpdate(); } } $page = new page_action(); $page->onLoad();
// Before we delete the email domain, // we will delete all depending records. // Delete all forwardings where the osurce or destination belongs to this domain $records = $app->db->queryAllRecords("SELECT forwarding_id as id FROM mail_forwarding WHERE source like '%@" . $app->db->quote($domain) . "' OR destination like '%@" . $app->db->quote($domain) . "'"); foreach ($records as $rec) { $app->db->datalogDelete('mail_forwarding', 'forwarding_id', $rec['id']); } // Delete all fetchmail accounts where destination belongs to this domain $records = $app->db->queryAllRecords("SELECT mailget_id as id FROM mail_get WHERE destination like '%@" . $app->db->quote($domain) . "'"); foreach ($records as $rec) { $app->db->datalogDelete('mail_get', 'mailget_id', $rec['id']); } // Delete all mailboxes where destination belongs to this domain $records = $app->db->queryAllRecords("SELECT mailuser_id as id FROM mail_user WHERE email like '%@" . $app->db->quote($domain) . "'"); foreach ($records as $rec) { $app->db->datalogDelete('mail_user', 'mailuser_id', $rec['id']); } // Delete all spamfilters that belong to this domain $records = $app->db->queryAllRecords("SELECT id FROM spamfilter_users WHERE email = '@" . $app->db->quote($domain) . "'"); foreach ($records as $rec) { $app->db->datalogDelete('spamfilter_users', 'id', $rec['id']); } // Delete all mailinglists that belong to this domain $records = $app->db->queryAllRecords("SELECT mailinglist_id FROM mail_mailinglist WHERE domain = '" . $app->db->quote($domain) . "'"); foreach ($records as $rec) { $app->db->datalogDelete('mail_mailinglist', 'mailinglist_id', $rec['id']); } } } $page = new page_action(); $page->onDelete();