From c1fcaed2ee8f05a5030fe4e8e211ca4eae7a9489 Mon Sep 17 00:00:00 2001
From: ftimme <ft@falkotimme.com>
Date: Tue, 11 Jun 2013 11:44:57 -0400
Subject: [PATCH] - Fixed FS#2921 - RBL list field in server config can not be empty.
---
interface/lib/classes/tools_sites.inc.php | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 53 insertions(+), 4 deletions(-)
diff --git a/interface/lib/classes/tools_sites.inc.php b/interface/lib/classes/tools_sites.inc.php
index 8abf2b9..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'])) {
@@ -74,7 +96,7 @@
}
}
- $tmp = $app->db->queryOneRecord("SELECT name FROM sys_group WHERE groupid = " . intval($client_group_id));
+ $tmp = $app->db->queryOneRecord("SELECT name FROM sys_group WHERE groupid = " . $app->functions->intval($client_group_id));
$clientName = $tmp['name'];
if ($clientName == "") $clientName = 'default';
$clientName = $this->convertClientName($clientName);
@@ -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'])) {
@@ -100,7 +122,7 @@
$client_group_id = 0;
}
}
- $tmp = $app->db->queryOneRecord("SELECT client_id FROM sys_group WHERE groupid = " . intval($client_group_id));
+ $tmp = $app->db->queryOneRecord("SELECT client_id FROM sys_group WHERE groupid = " . $app->functions->intval($client_group_id));
$clientID = $tmp['client_id'];
if ($clientID == '') $clientID = '0';
return $clientID;
@@ -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