Browse Source

fix showing domain level in maintenance view

Tim Fry 1 year ago
parent
commit
8819486bac
1 changed files with 94 additions and 93 deletions
  1. 94 93
      maintenance.php

+ 94 - 93
maintenance.php

@@ -80,7 +80,7 @@ if (!empty($_REQUEST['action'])) {
 }
 
 if (!empty($_REQUEST['show'])) {
-	$show_all = ($_REQUEST['show'] == 'all') ? true : false;
+	$show_all = ($_REQUEST['show'] == 'all' && permission_exists('maintenance_show_all')) ? true : false;
 } else {
 	$show_all = false;
 }
@@ -110,97 +110,98 @@ $classes = $default_settings->get('maintenance', 'application', []);
 //get the display array
 $maintenance_apps = [];
 
-if (permission_exists('maintenance_show_all') && $show_all) {
-	//get the global settings
-	$sql = "select default_setting_subcategory, default_setting_value, default_setting_enabled from v_default_settings";
-	$sql .= " where";
-	$sql .= "   default_setting_subcategory = '" . maintenance::DATABASE_SUBCATEGORY . "'";
-	$sql .= " or";
-	$sql .= "   default_setting_subcategory = '" . maintenance::FILESYSTEM_SUBCATEGORY . "'";
-	$parameters = null;
-
-	//filter based on search
-	if (!empty($search)) {
-		$search_param = "%$search%";
-		$sql .= " and default_setting_subcategory like :search";
-		$parameters['search'] = $search_param;
-	}
-	if (!empty($page)) {
-		$sql .= limit_offset($rows_per_page, $offset);
-	}
-
-	$result = $database->execute($sql, $parameters, 'all');
-
-	if (!empty($result)) {
-		foreach ($result as $row) {
-			if ($row['default_setting_subcategory'] === maintenance::DATABASE_SUBCATEGORY) {
-				$class_name = $row['default_setting_category'];
-				$maintenance_apps[$class_name]['database_maintenance']['global'] = $row;
-			}
-			if ($row['default_setting_subcategory'] === maintenance::FILESYSTEM_SUBCATEGORY) {
-				$class_name = $row['default_setting_category'];
-				$maintenance_apps[$class_name]['filesystem_maintenance']['global'] = $row;
-			}
-		}
-	}
-	//get the domain settings
-	$sql = "select domain_uuid, domain_setting_subcategory, domain_setting_value, domain_setting_enabled from v_domain_settings";
-	$sql .= " where (";
-	$sql .= "   domain_setting_subcategory = '" . maintenance::DATABASE_SUBCATEGORY . "'";
-	$sql .= " or";
-	$sql .= "   domain_setting_subcategory = '" . maintenance::FILESYSTEM_SUBCATEGORY . "')";
-
-	//filter based on search
-	if (!empty($search)) {
-		$search_param = "%$search%";
-		$sql .= " and domain_setting_subcategory like :search";
-		$parameters['search'] = $search_param;
-	}
-	if (!empty($page)) {
-		$sql .= limit_offset($rows_per_page, $offset);
+if ($show_all) {
+//	//get the global settings
+//	$sql = "select default_setting_subcategory, default_setting_value, default_setting_enabled from v_default_settings";
+//	$sql .= " where";
+//	$sql .= "   default_setting_subcategory = '" . maintenance::DATABASE_SUBCATEGORY . "'";
+//	$sql .= " or";
+//	$sql .= "   default_setting_subcategory = '" . maintenance::FILESYSTEM_SUBCATEGORY . "'";
+//	$parameters = null;
+//
+//	//filter based on search
+//	if (!empty($search)) {
+//		$search_param = "%$search%";
+//		$sql .= " and default_setting_subcategory like :search";
+//		$parameters['search'] = $search_param;
+//	}
+//	if (!empty($page)) {
+//		$sql .= limit_offset($rows_per_page, $offset);
+//	}
+//
+//	$result = $database->execute($sql, $parameters, 'all');
+//
+//	if (!empty($result)) {
+//		foreach ($result as $row) {
+//			if ($row['default_setting_subcategory'] === maintenance::DATABASE_SUBCATEGORY) {
+//				$class_name = $row['default_setting_category'];
+//				$maintenance_apps[$class_name]['database_maintenance']['global'] = $row;
+//			}
+//			if ($row['default_setting_subcategory'] === maintenance::FILESYSTEM_SUBCATEGORY) {
+//				$class_name = $row['default_setting_category'];
+//				$maintenance_apps[$class_name]['filesystem_maintenance']['global'] = $row;
+//			}
+//		}
+//	}
+//	//get the domain settings
+//	$sql = "select domain_uuid, domain_setting_subcategory, domain_setting_value, domain_setting_enabled from v_domain_settings";
+//	$sql .= " where (";
+//	$sql .= "   domain_setting_subcategory = '" . maintenance::DATABASE_SUBCATEGORY . "'";
+//	$sql .= " or";
+//	$sql .= "   domain_setting_subcategory = '" . maintenance::FILESYSTEM_SUBCATEGORY . "')";
+//
+//	//filter based on search
+//	if (!empty($search)) {
+//		$search_param = "%$search%";
+//		$sql .= " and domain_setting_subcategory like :search";
+//		$parameters['search'] = $search_param;
+//	}
+//	if (!empty($page)) {
+//		$sql .= limit_offset($rows_per_page, $offset);
+//	}
+//
+//	$result = $database->execute($sql, $parameters, 'all');
+//
+//	if (!empty($result)) {
+//		foreach ($result as $row) {
+//			if ($row['domain_setting_subcategory'] === maintenance::DATABASE_SUBCATEGORY) {
+//				$class_name = $row['domain_setting_category'];
+//				$maintenance_apps[$class_name]['database_maintenance'][$row['domain_uuid']] = $row;
+//			}
+//			if ($row['domain_setting_subcategory'] === maintenance::FILESYSTEM_SUBCATEGORY) {
+//				$class_name = $row['domain_setting_category'];
+//				$maintenance_apps[$class_name]['filesystem_maintenance'][$row['domain_uuid']] = $row;
+//			}
+//		}
+//	}
+	//get maintainers
+	$global_settings = new settings(['database' => $database]);
+	$maintainers = $global_settings->get('maintainers', 'application', []);
+	$domains = maintenance::get_domains($database);
+	foreach ($domains as $domain_uuid => $domain) {
+		
 	}
-
-	$result = $database->execute($sql, $parameters, 'all');
-
-	if (!empty($result)) {
-		foreach ($result as $row) {
-			if ($row['domain_setting_subcategory'] === maintenance::DATABASE_SUBCATEGORY) {
-				$class_name = $row['domain_setting_category'];
-				$maintenance_apps[$class_name]['database_maintenance'][$row['domain_uuid']] = $row;
-			}
-			if ($row['domain_setting_subcategory'] === maintenance::FILESYSTEM_SUBCATEGORY) {
-				$class_name = $row['domain_setting_category'];
-				$maintenance_apps[$class_name]['filesystem_maintenance'][$row['domain_uuid']] = $row;
-			}
+}
+else {
+	//use the settings object to get the maintenance apps and their values
+	$domain_settings = new settings(['database'=>$database, 'domain_uuid' => $_SESSION['domain_uuid'] ?? '']);
+	$maintainers = $domain_settings->get('maintenance', 'application', []);
+	foreach ($maintainers as $maintainer) {
+		//database retention days
+		$category = maintenance::get_database_category($maintainer);
+		$subcategory = maintenance::get_database_subcategory($maintainer);
+		$database_retention_days = $domain_settings->get($category, $subcategory, '');
+		if (!empty($database_retention_days)) {
+			$maintenance_apps[$category]['database_maintenance'][$domain_uuid]['domain_setting_value'] = $database_retention_days;
+			$maintenance_apps[$category]['database_maintenance'][$domain_uuid]['domain_setting_enabled'] = 'true';
 		}
-	}
-} else {
-	$domain_uuid = $_SESSION['domain_uuid'];
-	//show only the current domain settings
-	$sql = "select domain_uuid, domain_setting_subcategory, domain_setting_value, domain_setting_enabled from v_domain_settings";
-	$sql .= " where (domain_setting_subcategory = ' " . maintenance::DATABASE_SUBCATEGORY . "' or domain_setting_subcategory = '" . maintenance::FILESYSTEM_SUBCATEGORY . "')";
-	$sql .= " and domain_uuid = '$domain_uuid'";
-	if (!empty($search)) {
-		$search_param = "%$search%";
-		$sql .= " and domain_setting_subcategory like :search";
-		$parameters['search'] = $search_param;
-	}
-	if (!empty($page)) {
-		$sql .= limit_offset($rows_per_page, $offset);
-	}
-
-	$result = $database->execute($sql, $parameters ?? null, 'all');
-
-	if (!empty($result)) {
-		foreach ($result as $row) {
-			if ($row['domain_setting_subcategory'] === maintenance::DATABASE_SUBCATEGORY) {
-				$class_name = $row['domain_setting_category'];
-				$maintenance_apps[$class_name]['database_maintenance'][$row['domain_uuid']] = $row;
-			}
-			if ($row['domain_setting_subcategory'] === maintenance::FILESYSTEM_SUBCATEGORY) {
-				$class_name = $row['domain_setting_category'];
-				$maintenance_apps[$class_name]['filesystem_maintenance'][$row['domain_uuid']] = $row;
-			}
+		//filesystem retention days
+		$category = maintenance::get_filesystem_category($maintainer);
+		$subcategory = maintenance::get_filesystem_subcategory($maintainer);
+		$filesystem_retention_days = $domain_settings->get($category, $subcategory, '');
+		if (!empty($filesystem_retention_days)) {
+			$maintenance_apps[$category]['filesystem_maintenance'][$domain_uuid]['domain_setting_value'] = $filesystem_retention_days;
+			$maintenance_apps[$category]['filesystem_maintenance'][$domain_uuid]['domain_setting_enabled'] = 'true';
 		}
 	}
 
@@ -265,7 +266,7 @@ echo "		<input type='hidden' name='search' value=\"".escape($search)."\">";
 echo "		<table class='list'>";
 echo "			<tr class='list-header'>";
 echo "				<th>Name</th>";
-if (permission_exists('maintenance_show_all')) {
+if ($show_all) {
 	echo "			<th>Domain</th>";
 }
 echo "				<th>Database Enabled</th>";
@@ -280,7 +281,7 @@ foreach ($maintenance_apps as $class => $app_settings) {
 	$display_name = ucwords(str_replace('_', ' ', $class));
 
 	//display global first
-	if ((isset($app_settings['database_maintenance']['global']) || isset($app_settings['filesystem_maintenance']['global'])) && permission_exists('maintenance_show_all')) {
+	if ((isset($app_settings['database_maintenance']['global']) || isset($app_settings['filesystem_maintenance']['global'])) && $show_all) {
 		echo "<tr class='list-row' style=''>";
 		echo "	<td>$display_name</td>";
 		echo "	<td>".$text['label-global']."</td>";
@@ -322,7 +323,7 @@ foreach ($maintenance_apps as $class => $app_settings) {
 			}
 			echo "<tr class='list-row' style=''>";
 			echo "	<td>$display_name</td>";
-			if (permission_exists('maintenance_show_all')) {
+			if ($show_all) {
 				echo "<td>".$domain_names[$domain_uuid]."</td>";
 			}
 			if (isset($app_settings['database_maintenance'][$domain_uuid])) {