Пример #1
0
/**
 *	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;
}
Пример #2
0
 /**
  *  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;
 }
Пример #3
0
 /**
  *	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");
 }