/** * Purge deleted domains * * @return bool TRUE on success, FALSE on failure */ function purge_deleted_domains() { global $config, $data; $opt = array('deleted_before' => $GLOBALS['now'] - $config->keep_deleted_interval * 86400); if (false === ($deleted_domains = $data->get_deleted_domains($opt))) { return false; } foreach ($deleted_domains as $dom) { $dm_h =& DomainManipulator::singleton($dom); if (false === $dm_h->purge_domain()) { return false; } } return true; }
/** * Method update the owner of domain, digest realm and sop_vm_domain. * * Attributes: * - owner_id - ID of owner (customer) * - alias - ??? * * @param string $did doamin ID * @param array $attrs array of attribute values * @return bool TRUE on success, FALSE on error * @static */ function update_domain_attrs($did, $attrs) { global $config; $an =& $config->attr_names; $da_h =& Domain_Attrs::singleton($did); if (false === ($domain_attrs = $da_h->get_attributes())) { return false; } if (isset($attrs['owner_id'])) { $cur_owner_id = null; if (isset($domain_attrs[$an['dom_owner']])) { $cur_owner_id = $domain_attrs[$an['dom_owner']]; } if (!is_null($attrs['owner_id']) and $attrs['owner_id'] != $cur_owner_id) { if ($attrs['owner_id'] == -1) { if (false === $da_h->unset_attribute($an['dom_owner'])) { return false; } } else { if (false === $da_h->set_attribute($an['dom_owner'], $attrs['owner_id'])) { return false; } } } } /* * If digest realm is not set, (or 'sop_vm_domain' is defined and is not set) * set it by the canonical domain name */ $digest_realm = ""; if (!isset($domain_attrs[$an['digest_realm']]) or !empty($an['sop_vm_domain']) and !isset($domain_attrs[$an['sop_vm_domain']])) { $dm_h =& DomainManipulator::singleton($did); if (false === ($dom_names = $dm_h->get_domain_names(null))) { return false; } foreach ($dom_names as $v) { if ($v['canon']) { $digest_realm = $v['name']; break; } } if (!$digest_realm and !empty($attrs['alias'])) { $digest_realm = $attrs['alias']; } if ($digest_realm and false === $da_h->set_attribute($an['digest_realm'], $digest_realm)) { return false; } } if ($digest_realm and !isset($domain_attrs[$an['digest_realm']])) { if (false === $da_h->set_attribute($an['digest_realm'], $digest_realm)) { return false; } } if ($digest_realm and !empty($an['sop_vm_domain']) and !isset($domain_attrs[$an['sop_vm_domain']])) { if (false === $da_h->set_attribute($an['sop_vm_domain'], $digest_realm)) { return false; } } /* set datetime_created attr */ if (!isset($domain_attrs[$an['datetime_created']])) { if (false === $da_h->set_attribute($an['datetime_created'], gmdate("Y-m-d H:i:s"))) { return false; } } return true; }
/** * Method delete alias of the domain. Alias name depend on $_GET param * * @param array $errors array with error messages * @return array return array of $_GET params fo redirect or FALSE on failure */ function action_delete_domain_alias(&$errors) { global $data, $lang_str; if (is_null($this->id)) { log_errors(PEAR::raiseError('domain ID is not specified'), $errors); return false; } $dm_h =& DomainManipulator::singleton($this->id); if (false === $dm_h->delete_domain_alias($_GET['dele_name'])) { return false; } return array("m_do_alias_deleted=" . RawURLEncode($this->opt['instance_id'])); }
function action_confirm_reg(&$errors) { global $data, $config, $lang_str; if (isset($_GET['pr'])) { $proxy['proxy'] = base64_decode($_GET['pr']); if ($proxy['proxy']) { if (false === $data->set_home_proxy($proxy['proxy'])) { return false; } } } if (isModuleLoaded('xxl') and !$proxy['proxy']) { $errors[] = $lang_str['err_reg_conf_not_exists_conf_num']; return false; } $an =& $config->attr_names; /* get uid */ $o = array('name' => $an['confirmation'], 'value' => $this->nr); if (false === ($attrs = $data->get_attr_by_val("user", $o))) { return false; } if (empty($attrs[0]['id'])) { $this->wrong_nr = true; ErrorHandler::add_error($lang_str['err_reg_conf_not_exists_conf_num']); return false; } $uid = $attrs[0]['id']; /* get did - for the case that domain has been created during registration */ $o = array('name' => $an['confirmation'], 'value' => $this->nr); if (false === ($attrs = $data->get_attr_by_val("domain", $o))) { return false; } $did = null; if (!empty($attrs[0]['id'])) { $did = $attrs[0]['id']; } if (false === $data->transaction_start()) { return false; } // first enable domain if (!is_null($did)) { $dm_h =& DomainManipulator::singleton($did); if (false === $dm_h->enable_domain(true)) { return false; } $domain_attrs =& Domain_Attrs::singleton($did); if (false === $domain_attrs->unset_attribute($an['confirmation'])) { $data->transaction_rollback(); return false; } if (false === $domain_attrs->unset_attribute($an['pending_ts'])) { $data->transaction_rollback(); return false; } } $o = array("uid" => $uid, "disable" => false); if (false === $data->enable_user($o)) { $data->transaction_rollback(); return false; } $user_attrs =& User_Attrs::singleton($uid); if (false === $user_attrs->unset_attribute($an['confirmation'])) { $data->transaction_rollback(); return false; } if (false === $user_attrs->unset_attribute($an['pending_ts'])) { $data->transaction_rollback(); return false; } if (false === $data->transaction_commit()) { return false; } if ($this->opt['setup_jabber_account']) { ErrorHandler::add_error("Registration in jabber not maintained, please set \$config->setup_jabber_account=false in config file."); # Jabber Gateway registration $res = reg_jab($user_id->uname); if ($res != 0) { $res = $res + 1; log_errors(PEAR::raise_error("jabber registration failed: <" . $user_id->uname . "> [" . $res . "]"), $errors); return array("confirmation_ok=1", "conf_jabber_failed=1"); } } return array("confirmation_ok=1"); }