From 3fc28c0142bf8ab4e2cfae44931e2a51aadc4d51 Mon Sep 17 00:00:00 2001
From: mcramer <m.cramer@pixcept.de>
Date: Mon, 25 Feb 2013 13:51:37 -0500
Subject: [PATCH] - Added: remoting queries with a lot of results (e.g. email addresses or alias domains or dns rr) lead to non-functioning soap requests - added '#OFFSET#' AND '#LIMIT#' handling to the query - added automatic 'WHERE 1' if an empty array was given as query example: $result = $api->sites_web_domain_get('type' => 'vhost', '#OFFSET#' => 25, '#LIMIT#' => 50); to get the websites 26 to 75
---
interface/lib/classes/tools_sites.inc.php | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 51 insertions(+), 2 deletions(-)
diff --git a/interface/lib/classes/tools_sites.inc.php b/interface/lib/classes/tools_sites.inc.php
index 0619f2f..deb57f5 100644
--- a/interface/lib/classes/tools_sites.inc.php
+++ b/interface/lib/classes/tools_sites.inc.php
@@ -54,7 +54,29 @@
}
return $name;
}
-
+
+ function removePrefix($name, $currentPrefix, $globalPrefix) {
+ if($name == "") return "";
+
+ if($currentPrefix === '') return $name; // empty prefix, do not change name
+ if($currentPrefix === '#') $currentPrefix = $globalPrefix; // entry has no prefix set, maybe it was created before this function was introduced
+
+ if($currentPrefix === '') return $name; // no current prefix and global prefix is empty -> nothing to remove here.
+
+ return preg_replace('/^' . preg_quote($currentPrefix, '/') . '/', '', $name); // return name without prefix
+ }
+
+ function getPrefix($currentPrefix, $userPrefix, $adminPrefix = false) {
+ global $app;
+
+ if($currentPrefix !== '#') return $currentPrefix; // return the currently set prefix for this entry (# = no prefix set yet)
+
+ if($adminPrefix === false) $adminPrefix = $userPrefix;
+
+ if($_SESSION["s"]["user"]["typ"] == 'admin' || $app->auth->has_clients($_SESSION['s']['user']['userid'])) return $adminPrefix;
+ else return $userPrefix;
+ }
+
function getClientName($dataRecord) {
global $app, $conf;
if($_SESSION["s"]["user"]["typ"] != 'admin' && !$app->auth->has_clients($_SESSION['s']['user']['userid'])) {
@@ -91,7 +113,7 @@
// Get the group-id from the data itself
if(isset($dataRecord['client_group_id'])) {
$client_group_id = $dataRecord['client_group_id'];
- } elseif (isset($dataRecord['parent_domain_id'])) {
+ } elseif (isset($dataRecord['parent_domain_id']) && $dataRecord['parent_domain_id'] != 0) {
$tmp = $app->db->queryOneRecord("SELECT sys_groupid FROM web_domain WHERE domain_id = " . $dataRecord['parent_domain_id']);
$client_group_id = $tmp['sys_groupid'];
} elseif(isset($dataRecord['sys_groupid'])) {
@@ -121,6 +143,33 @@
}
return $res;
}
+
+ function getDomainModuleDomains() {
+ global $app;
+
+ $sql = "SELECT domain_id, domain FROM domain WHERE";
+ if ($_SESSION["s"]["user"]["typ"] == 'admin') {
+ $sql .= " 1";
+ } else {
+ $groups = ( $_SESSION["s"]["user"]["groups"] ) ? $_SESSION["s"]["user"]["groups"] : 0;
+ $sql .= " sys_groupid IN (".$groups.")";
+ }
+ $sql .= " ORDER BY domain";
+ return $app->db->queryAllRecords($sql);
+ }
+
+ function checkDomainModuleDomain($domain_id) {
+ global $app;
+
+ $sql = "SELECT domain_id, domain FROM domain WHERE domain_id = " . $app->functions->intval($domain_id);
+ if ($_SESSION["s"]["user"]["typ"] != 'admin') {
+ $groups = ( $_SESSION["s"]["user"]["groups"] ) ? $_SESSION["s"]["user"]["groups"] : 0;
+ $sql .= " AND sys_groupid IN (".$groups.")";
+ }
+ $domain = $app->db->queryOneRecord($sql);
+ if(!$domain || !$domain['domain_id']) return false;
+ return $domain['domain'];
+ }
}
?>
--
Gitblit v1.9.1