From 4569cae57f127afd093794310ccd290d2d9fdf36 Mon Sep 17 00:00:00 2001
From: Marius Burkard <m.burkard@pixcept.de>
Date: Wed, 20 Apr 2016 10:58:46 -0400
Subject: [PATCH] Merge branch 'stable-3.1'

---
 interface/lib/classes/remote.d/aps.inc.php |   51 +++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 45 insertions(+), 6 deletions(-)

diff --git a/interface/lib/classes/remote.d/aps.inc.php b/interface/lib/classes/remote.d/aps.inc.php
index b626f1b..4db5f78 100644
--- a/interface/lib/classes/remote.d/aps.inc.php
+++ b/interface/lib/classes/remote.d/aps.inc.php
@@ -39,13 +39,15 @@
 	{
 		global $app;
 	
-		if(!$this->checkPerm($session_id, 'sites_aps_update_package')) {
+		if(!$this->checkPerm($session_id, 'sites_aps_update_package_list')) {
 			$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
 			return false;
 		}
-	
+		
+		require_once '../../../lib/config.inc.php';
 		$app->load('aps_crawler');
-		$aps = new ApsCrawler($app, false); // true = Interface mode, false = Server mode
+		
+		$aps = new ApsCrawler($app, true); // true = Interface mode, false = Server mode
 		$aps->startCrawler();
 		$aps->parseFolderToDB();
 		$aps->fixURLs();
@@ -53,7 +55,7 @@
 		return true;
 	}
 	
-	public function sites_aps_available_packages_list($session_id, $params)
+	public function sites_aps_available_packages_list($session_id, $params = array())
 	{
 		global $app;
 	
@@ -198,6 +200,36 @@
 		return $settings;
 	}
 	
+	public function sites_aps_change_package_status($session_id, $primary_id, $params)
+	{
+		global $app;
+	
+		if(!$this->checkPerm($session_id, 'sites_aps_change_package_status')) {
+			$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+			return false;
+		}
+		
+		$app->load('aps_base');
+		$app->load('aps_guicontroller');
+		$gui = new ApsGUIController($app);
+		
+		// Make sure an integer ID is given
+		if (!isset($primary_id) || !$gui->isValidPackageID($primary_id, true)) {// always adminflag
+			$this->server->fault('package_error', 'The given Package ID is not valid.');
+			return false;
+		}
+		
+		if(!isset($params['package_status']) || (($params['package_status'] != PACKAGE_ENABLED) && ($params['package_status'] != PACKAGE_LOCKED))) {
+			$this->server->fault('package_error', 'Wrong new status: '.$params['package_status']);
+			return false;
+		}
+		
+		$sql  = "UPDATE aps_packages SET package_status = ? WHERE id = ?";
+		$app->db->query($sql, $params['package_status'], $app->functions->intval($primary_id));
+		
+		return true;
+	}
+	
 	public function sites_aps_install_package($session_id, $primary_id, $params)
 	{
 		global $app;
@@ -241,8 +273,15 @@
 			return false;
 		}
 	
-		$sql = "SELECT * FROM web_domain WHERE domain = ?";
-		$domain = $app->db->queryOneRecord($sql, $params['main_domain']);
+		if (substr($params['main_domain'], 0, 4) == 'www.') {
+			$domain = substr($params['main_domain'], 4);
+			$sql = "SELECT * FROM web_domain WHERE domain = ? AND subdomain=?";
+			$domain = $app->db->queryOneRecord($sql, $domain, 'www');
+		}
+		else {
+			$sql = "SELECT * FROM web_domain WHERE domain = ?";
+			$domain = $app->db->queryOneRecord($sql, $params['main_domain']);
+		}
 	
 		if (!$domain) {
 			$this->server->fault('invalid parameters', 'No valid domain given.');

--
Gitblit v1.9.1