90 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
			
		
		
	
	
			90 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
<?php
 | 
						|
 | 
						|
/**
 | 
						|
 * Subdomain Api of AlternC, used by alternc-api package
 | 
						|
 */
 | 
						|
class Alternc_Api_Object_Subdomain extends Alternc_Api_Legacyobject {
 | 
						|
 | 
						|
    protected $dom; // m_dom instance
 | 
						|
 | 
						|
    function __construct($service) {
 | 
						|
        global $dom;
 | 
						|
        parent::__construct($service);
 | 
						|
        $this->dom = $dom;
 | 
						|
    }
 | 
						|
 | 
						|
    /** API Method from legacy class method dom->get_sub_domain_all($dom)
 | 
						|
     * @param $options a hash with parameters transmitted to legacy call
 | 
						|
     * musr be the subdomain id ID
 | 
						|
     * @return Alternc_Api_Response whose content is the list of subdomains on this server 
 | 
						|
     */
 | 
						|
    function get($options) {
 | 
						|
        global $cuid;
 | 
						|
        if ($this->isAdmin) {
 | 
						|
            if (isset($options["uid"])) {
 | 
						|
                $cuid = intval($options["uid"]);
 | 
						|
            }
 | 
						|
        }
 | 
						|
        $mandatory = array("id");
 | 
						|
        $missing = "";
 | 
						|
        foreach ($mandatory as $key) {
 | 
						|
            if (!isset($options[$key])) {
 | 
						|
                $missing.=$key . " ";
 | 
						|
            }
 | 
						|
        }
 | 
						|
        if ($missing) {
 | 
						|
            return new Alternc_Api_Response(array("code" => self::ERR_INVALID_ARGUMENT, "message" => "Missing or invalid argument: " . $missing));
 | 
						|
        }
 | 
						|
        $this->dom->lock();
 | 
						|
        $did = $this->dom->get_sub_domain_all($options["id"]);
 | 
						|
        $this->dom->unlock();
 | 
						|
        if (!$did) {
 | 
						|
            return $this->alterncLegacyErrorManager();
 | 
						|
        } else {
 | 
						|
            return new Alternc_Api_Response(array("content" => $did));
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    /** API Method from legacy class method dom->set_sub_domain($dom)
 | 
						|
     * @param $options a hash with parameters transmitted to legacy call
 | 
						|
     * must be $dom, $sub, $type, $dest and could be $sub_domain_id 
 | 
						|
     * @return Alternc_Api_Response whose content is true or false 
 | 
						|
     * if the change has been made
 | 
						|
     */
 | 
						|
    function set($options) {
 | 
						|
        global $cuid;
 | 
						|
        if ($this->isAdmin) {
 | 
						|
            if (isset($options["uid"])) {
 | 
						|
                $cuid = intval($options["uid"]);
 | 
						|
            }
 | 
						|
        }
 | 
						|
        $mandatory = array("dom", "sub", "type", "dest");
 | 
						|
        $defaults = array("sub_domain_id" => null);
 | 
						|
        $missing = "";
 | 
						|
        foreach ($mandatory as $key) {
 | 
						|
            if (!isset($options[$key])) {
 | 
						|
                $missing.=$key . " ";
 | 
						|
            }
 | 
						|
        }
 | 
						|
        foreach ($defaults as $key => $value) {
 | 
						|
            if (!isset($options[$key])) {
 | 
						|
                $options[$key] = $value;
 | 
						|
            }
 | 
						|
        }
 | 
						|
        if ($missing) {
 | 
						|
            return new Alternc_Api_Response(array("code" => self::ERR_INVALID_ARGUMENT, "message" => "Missing or invalid argument: " . $missing));
 | 
						|
        }
 | 
						|
        $this->dom->lock();
 | 
						|
        $did = $this->dom->set_sub_domain($options["dom"], $options["sub"], $options["type"], $options["dest"], $options["sub_domain_id"]);
 | 
						|
        $this->dom->unlock();
 | 
						|
        if (!$did) {
 | 
						|
            return $this->alterncLegacyErrorManager();
 | 
						|
        } else {
 | 
						|
            return new Alternc_Api_Response(array("content" => $did));
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
// class Alternc_Api_Object_Subdomain
 |