2015-05-07 15:29:43 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Domain Api of AlternC, used by alternc-api package
|
|
|
|
*/
|
|
|
|
class Alternc_Api_Object_Domain 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_domain_list()
|
|
|
|
* @param $options a hash with parameters transmitted to legacy call
|
|
|
|
* may be "uid" to only return domains for a specific user-id
|
|
|
|
* (if you are not admin, this WILL only list YOUR domains anyway)
|
|
|
|
* may be "offset" and/or "count" to do paging.
|
|
|
|
* @return Alternc_Api_Response whose content is the list of hosted domains on this server
|
|
|
|
* (no more details as of now)
|
|
|
|
*/
|
|
|
|
function find($options) {
|
|
|
|
global $cuid;
|
|
|
|
$sql = "";
|
|
|
|
if ($this->isAdmin) {
|
|
|
|
if (isset($options["uid"])) {
|
|
|
|
$uid = intval($options["uid"]);
|
|
|
|
} else {
|
|
|
|
$uid = -1;
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
$uid = $cuid;
|
|
|
|
}
|
|
|
|
if ($uid != -1) {
|
|
|
|
$sql = " WHERE compte=$uid ";
|
|
|
|
} else {
|
|
|
|
$sql = "";
|
|
|
|
}
|
|
|
|
$stmt = $this->db->prepare("SELECT * FROM domaines $sql ORDER BY domaine");
|
|
|
|
$stmt->execute();
|
|
|
|
$result = array();
|
|
|
|
while ($me = $stmt->fetch(PDO::FETCH_OBJ)) {
|
|
|
|
$result[$me->domaine] = $me;
|
|
|
|
}
|
2015-06-08 17:21:45 +00:00
|
|
|
list($offset, $count) = $this->offsetAndCount($options, count($result));
|
2015-05-07 15:29:43 +00:00
|
|
|
if ($offset != -1 || $count != -1) {
|
|
|
|
$result = array_slice($result, $offset, $count);
|
|
|
|
}
|
|
|
|
return new Alternc_Api_Response(array("content" => $result));
|
|
|
|
}
|
|
|
|
|
2015-06-08 17:21:45 +00:00
|
|
|
/** API Method from legacy class method dom->get_domain_all($dom)
|
|
|
|
* @param $options a hash with parameters transmitted to legacy call
|
|
|
|
* musr be the domain name $dom
|
|
|
|
* @return Alternc_Api_Response whose content is the list of domain info and subdomains
|
|
|
|
*/
|
|
|
|
function get($options) {
|
|
|
|
global $cuid;
|
|
|
|
if ($this->isAdmin) {
|
|
|
|
if (isset($options["uid"])) {
|
|
|
|
$cuid = intval($options["uid"]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$mandatory = array("dom");
|
|
|
|
$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_domain_all($options["dom"]);
|
|
|
|
$this->dom->unlock();
|
|
|
|
if (!$did) {
|
|
|
|
return $this->alterncLegacyErrorManager();
|
|
|
|
} else {
|
|
|
|
return new Alternc_Api_Response(array("content" => $did));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2015-05-07 15:29:43 +00:00
|
|
|
/** API Method from legacy class method dom->add_domain()
|
|
|
|
* @param $options a hash with parameters transmitted to legacy call
|
|
|
|
* mandatory parameters: domain(str), dns(bool)
|
|
|
|
* non-mandatory: noerase(bool, only admins), force(bool, only admins), isslave(bool), slavedom(str)
|
|
|
|
* @return Alternc_Api_Response whose content is the newly created DOMAIN id
|
|
|
|
*/
|
|
|
|
function add($options) {
|
|
|
|
$mandatory = array("domain", "dns");
|
|
|
|
$defaults = array("noerase" => false, "force" => false, "isslave" => false, "slavedom" => "");
|
|
|
|
$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));
|
|
|
|
}
|
|
|
|
foreach ($defaults as $key => $value) {
|
|
|
|
if (!isset($options[$key])) {
|
|
|
|
$options[$key] = $value;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (!$this->isAdmin) { // only admin can change the options below:
|
|
|
|
$options["noerase"] = false;
|
|
|
|
$options["force"] = false;
|
|
|
|
}
|
|
|
|
$did = $this->dom->add_domain($options["domain"], $options["dns"], $options["noerase"], $options["force"], $options["isslave"], $options["slavedom"]);
|
|
|
|
if (!$did) {
|
|
|
|
return $this->alterncLegacyErrorManager();
|
|
|
|
} else {
|
|
|
|
return new Alternc_Api_Response(array("content" => $did));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/** API Method from legacy class method dom->edit_domain()
|
|
|
|
* @param $options a hash with parameters transmitted to legacy call
|
|
|
|
* mandatory parameters: domain(str), dns(bool)
|
|
|
|
* non-mandatory: noerase(bool, only admins), force(bool, only admins), isslave(bool), slavedom(str)
|
|
|
|
* @return Alternc_Api_Response whose content is the newly created DOMAIN id
|
|
|
|
*/
|
|
|
|
function update($options) {
|
|
|
|
$mandatory = array("domain", "dns", "gesmx");
|
|
|
|
$defaults = array("force" => false, "ttl" => 86400);
|
|
|
|
$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));
|
|
|
|
}
|
|
|
|
foreach ($defaults as $key => $value) {
|
|
|
|
if (!isset($options[$key])) {
|
|
|
|
$options[$key] = $value;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (!$this->isAdmin) { // only admin can change the options below:
|
|
|
|
$options["force"] = false;
|
|
|
|
}
|
|
|
|
$did = $this->dom->edit_domain($options["domain"], $options["dns"], $options["gesmx"], $options["force"], $options["ttl"]);
|
|
|
|
if (!$did) {
|
|
|
|
return $this->alterncLegacyErrorManager();
|
|
|
|
} else {
|
|
|
|
return new Alternc_Api_Response(array("content" => $did));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/** API Method from legacy class method dom->del_domain()
|
|
|
|
* @param $options a hash with parameters transmitted to legacy call
|
|
|
|
* mandatory parameters: domain
|
|
|
|
* @return Alternc_Api_Response TRUE if the domain has been marked for deletion.
|
|
|
|
*/
|
|
|
|
function del($options) {
|
|
|
|
if (!isset($options["domain"])) {
|
|
|
|
return new Alternc_Api_Response(array("code" => self::ERR_ALTERNC_FUNCTION, "message" => "Missing or invalid argument: DOMAIN"));
|
|
|
|
}
|
|
|
|
$result = $this->dom->del_domain($options["domain"]);
|
|
|
|
if (!$result) {
|
|
|
|
return $this->alterncLegacyErrorManager();
|
|
|
|
} else {
|
|
|
|
return new Alternc_Api_Response(array("content" => true));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// class Alternc_Api_Object_Domain
|