diff --git a/client_domains.php b/client_domains.php index f01b6da8..13e8b051 100644 --- a/client_domains.php +++ b/client_domains.php @@ -21,7 +21,7 @@ $sql = mysqli_query($mysqli, "SELECT SQL_CALC_FOUND_ROWS domains.*, LEFT JOIN vendors AS mailhost ON domains.domain_mailhost = mailhost.vendor_id LEFT JOIN vendors AS webhost ON domains.domain_webhost = webhost.vendor_id WHERE domain_client_id = $client_id - AND domain_archived_at IS NULL + AND domain_$archive_query AND (domains.domain_name LIKE '%$q%' OR domains.domain_description LIKE '%$q%' OR registrar.vendor_name LIKE '%$q%' OR dnshost.vendor_name LIKE '%$q%' OR mailhost.vendor_name LIKE '%$q%' OR webhost.vendor_name LIKE '%$q%') ORDER BY $sort $order LIMIT $record_from, $record_to"); @@ -60,15 +60,31 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli, "SELECT FOUND_ROWS()"));
+ "> + Archived +
@@ -118,6 +134,7 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli, "SELECT FOUND_ROWS()")); $domain_dnshost_name = nullable_htmlentities($row['dnshost_name']); $domain_mailhost_name = nullable_htmlentities($row['mailhost_name']); $domain_created_at = nullable_htmlentities($row['domain_created_at']); + $domain_archived_at = nullable_htmlentities($row['domain_archived_at']); // Add - if empty on the table $domain_registrar_name_display = $domain_registrar_name ? $domain_registrar_name : "-"; $domain_webhost_name_display = $domain_webhost_name ? $domain_webhost_name : "-"; @@ -156,17 +173,24 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli, "SELECT FOUND_ROWS()")); )" data-target="#editDomainModal"> Edit - 1) { ?> - - - Archive - - + + + + Unarchive + + Delete + + + + + Archive + +
diff --git a/post/domain.php b/post/domain.php index 18a89698..ebd0d533 100644 --- a/post/domain.php +++ b/post/domain.php @@ -119,6 +119,46 @@ if (isset($_POST['edit_domain'])) { } +if (isset($_GET['archive_domain'])) { + $domain_id = intval($_GET['archive_domain']); + + //Get domain Name + $sql = mysqli_query($mysqli,"SELECT * FROM domains WHERE domain_id = $domain_id"); + $row = mysqli_fetch_array($sql); + $domain_name = sanitizeInput($row['domain_name']); + $client_id = intval($row['domain_client_id']); + + mysqli_query($mysqli,"UPDATE domains SET domain_archived_at = NOW() WHERE domain_id = $domain_id"); + + //Logging + mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Domain', log_action = 'Archive', log_description = '$session_name archived domain $domain_name', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_client_id = $client_id, log_user_id = $session_user_id"); + + $_SESSION['alert_type'] = "error"; + $_SESSION['alert_message'] = "Domain $domain_name archived"; + + header("Location: " . $_SERVER["HTTP_REFERER"]); +} + +if(isset($_GET['unarchive_domain'])){ + + $domain_id = intval($_GET['unarchive_domain']); + + // Get Name and Client ID for logging and alert message + $sql = mysqli_query($mysqli,"SELECT domain_name, domain_client_id FROM domains WHERE domain_id = $domain_id"); + $row = mysqli_fetch_array($sql); + $domain_name = sanitizeInput($row['domain_name']); + $client_id = intval($row['domain_client_id']); + + mysqli_query($mysqli,"UPDATE domains SET domain_archived_at = NULL WHERE domain_id = $domain_id"); + + //Logging + mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'domain', log_action = 'Unarchive', log_description = '$session_name restored domain $domain_name', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_client_id = $client_id, log_user_id = $session_user_id, log_entity_id = $domain_id"); + + $_SESSION['alert_message'] = "Domain $domain_name restored"; + + header("Location: " . $_SERVER["HTTP_REFERER"]); +} + if (isset($_GET['delete_domain'])) { validateAdminRole(); @@ -143,6 +183,83 @@ if (isset($_GET['delete_domain'])) { } +if (isset($_POST['bulk_archive_domains'])) { + validateAdminRole(); + validateCSRFToken($_POST['csrf_token']); + + $count = 0; // Default 0 + $domain_ids = $_POST['domain_ids']; // Get array of IDs to be deleted + + if (!empty($domain_ids)) { + + // Cycle through array and archive each record + foreach ($domain_ids as $domain_id) { + + $domain_id = intval($domain_id); + + // Get Name and Client ID for logging and alert message + $sql = mysqli_query($mysqli,"SELECT domain_name, domain_client_id FROM domains WHERE domain_id = $domain_id"); + $row = mysqli_fetch_array($sql); + $domain_name = sanitizeInput($row['domain_name']); + $client_id = intval($row['domain_client_id']); + + mysqli_query($mysqli,"UPDATE domains SET domain_archived_at = NOW() WHERE domain_id = $domain_id"); + + // Individual Contact logging + mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Domain', log_action = 'Archive', log_description = '$session_name archived domain $domain_name', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_client_id = $client_id, log_user_id = $session_user_id, log_entity_id = $domain_id"); + $count++; + } + + // Bulk Logging + mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Domain', log_action = 'Archive', log_description = '$session_name archived $count domains', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_client_id = $client_id, log_user_id = $session_user_id"); + + $_SESSION['alert_type'] = "error"; + $_SESSION['alert_message'] = "Archived $count domain(s)"; + + } + + header("Location: " . $_SERVER["HTTP_REFERER"]); +} + +if (isset($_POST['bulk_unarchive_domains'])) { + validateAdminRole(); + validateCSRFToken($_POST['csrf_token']); + + $count = 0; // Default 0 + $domain_ids = $_POST['domain_ids']; // Get array of IDs + + if (!empty($domain_ids)) { + + // Cycle through array and unarchive + foreach ($domain_ids as $domain_id) { + + $domain_id = intval($domain_id); + + // Get Name and Client ID for logging and alert message + $sql = mysqli_query($mysqli,"SELECT domain_name, domain_client_id FROM domains WHERE domain_id = $domain_id"); + $row = mysqli_fetch_array($sql); + $domain_name = sanitizeInput($row['domain_name']); + $client_id = intval($row['domain_client_id']); + + mysqli_query($mysqli,"UPDATE domains SET domain_archived_at = NULL WHERE domain_id = $domain_id"); + + // Individual logging + mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Domain', log_action = 'Unarchive', log_description = '$session_name Unarchived domain $domains_name', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_client_id = $client_id, log_user_id = $session_user_id, log_entity_id = $domain_id"); + + + $count++; + } + + // Bulk Logging + mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Domain', log_action = 'Unarchive', log_description = '$session_name Unarchived $count domains', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_client_id = $client_id, log_user_id = $session_user_id"); + + $_SESSION['alert_message'] = "Unarchived $count domain(s)"; + + } + + header("Location: " . $_SERVER["HTTP_REFERER"]); +} + if (isset($_POST['bulk_delete_domains'])) { validateAdminRole(); validateCSRFToken($_POST['csrf_token']); @@ -166,7 +283,7 @@ if (isset($_POST['bulk_delete_domains'])) { // Logging mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Domain', log_action = 'Delete', log_description = '$session_name bulk deleted $count domains', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_client_id = $client_id, log_user_id = $session_user_id"); - $_SESSION['alert_message'] = "Deleted $count certificate(s)"; + $_SESSION['alert_message'] = "Deleted $count domain(s)"; }