More user post function migration and cleanup

This commit is contained in:
johnnyq 2025-08-04 11:27:24 -04:00
parent 76b48378ab
commit fef0d8761f
6 changed files with 128 additions and 217 deletions

View File

@ -3,6 +3,7 @@
defined('FROM_POST_HANDLER') || die("Direct file access is not allowed");
if (isset($_GET['delete_saved_payment'])) {
validateCSRFToken($_GET['csrf_token']);
$saved_payment_id = intval($_GET['delete_saved_payment']);

View File

@ -9,10 +9,10 @@ defined('FROM_POST_HANDLER') || die("Direct file access is not allowed");
if (isset($_POST['save_budget'])) {
enforceUserPermission('module_financial', 2);
validateCSRFToken($_POST['csrf_token']);
enforceUserPermission('module_financial', 2);
$budgets = $_POST['budget'];
$year = intval($_POST['year']);
@ -34,31 +34,27 @@ if (isset($_POST['save_budget'])) {
}
}
// Logging
logAction("Budget", "Edit", "$session_name edited the budget for $year");
$_SESSION['alert_message'] = "Budget Updated for $year";
flash_alert("Budget Updated for $year");
redirect();
exit;
}
if (isset($_POST['delete_budget'])) {
enforceUserPermission('module_financial', 3);
validateCSRFToken($_POST['csrf_token']);
enforceUserPermission('module_financial', 3);
$year = intval($_POST['year']);
mysqli_query($mysqli,"DELETE FROM budget WHERE budget_year = $year");
// Logging
logAction("Budget", "Delete", "$session_name deleted the budget for $year");
$_SESSION['alert_type'] = "error";
$_SESSION['alert_message'] = "Budget deleted for $year";
flash_alert("Budget deleted for $year", 'error');
redirect();

View File

@ -14,10 +14,9 @@ if (isset($_POST['add_category'])) {
$category_id = mysqli_insert_id($mysqli);
// Logging
logAction("Category", "Create", "$session_name created category $type $name", 0, $category_id);
$_SESSION['alert_message'] = "Category $type <strong>$name</strong> created";
flash_alert("Category $type <strong>$name</strong> created");
redirect();

View File

@ -32,10 +32,9 @@ if (isset($_POST['add_certificate'])) {
$certificate_id = mysqli_insert_id($mysqli);
// Logging
logAction("Certificate", "Create", "$session_name created certificate $name", $client_id, $certificate_id);
$_SESSION['alert_message'] = "Certificate <strong>$name</strong> created";
flash_aletr("Certificate <strong>$name</strong> created");
redirect();
@ -99,10 +98,9 @@ if (isset($_POST['edit_certificate'])) {
}
}
// Logging
logAction("Certificate", "Edit", "$session_name edited certificate $name", $client_id, $certificate_id);
$_SESSION['alert_message'] = "Certificate <strong>$name</strong> updated";
flash_alert("Certificate <strong>$name</strong> updated");
redirect();
@ -122,11 +120,9 @@ if (isset($_GET['archive_certificate'])) {
mysqli_query($mysqli,"UPDATE certificates SET certificate_archived_at = NOW() WHERE certificate_id = $certificate_id");
// logging
logAction("Certificate", "Archive", "$session_name arhvived certificate $certificate_name", $client_id, $certificate_id);
$_SESSION['alert_type'] = "error";
$_SESSION['alert_message'] = "Certificate <strong>$certificate_name</strong> archived";
flash_alert("Certificate <strong>$certificate_name</strong> archived", 'alert');
redirect();
@ -146,10 +142,9 @@ if (isset($_GET['unarchive_certificate'])) {
mysqli_query($mysqli,"UPDATE certificates SET certificate_archived_at = NULL WHERE certificate_id = $certificate_id");
// logging
logAction("Certificate", "Unarchive", "$session_name restored certificate $certificate_name", $client_id, $certificate_id);
$_SESSION['alert_message'] = "Certificate <strong>$certificate_name</strong> restored";
flash_alert("Certificate <strong>$certificate_name</strong> restored");
redirect();
@ -169,19 +164,19 @@ if (isset($_GET['delete_certificate'])) {
mysqli_query($mysqli,"DELETE FROM certificates WHERE certificate_id = $certificate_id");
// Logging
logAction("Certificate", "Delete", "$session_name deleted certificate $name", $client_id);
$_SESSION['alert_type'] = "error";
$_SESSION['alert_message'] = "Certificate <strong>$certificate_name</strong> deleted";
flash_alert("Certificate <strong>$certificate_name</strong> deleted");
redirect();
}
if (isset($_POST['bulk_delete_certificates'])) {
enforceUserPermission('module_support', 3);
validateCSRFToken($_POST['csrf_token']);
enforceUserPermission('module_support', 3);
if (isset($_POST['certificate_ids'])) {
@ -201,19 +196,18 @@ if (isset($_POST['bulk_delete_certificates'])) {
mysqli_query($mysqli, "DELETE FROM certificates WHERE certificate_id = $certificate_id AND certificate_client_id = $client_id");
// Logging
logAction("Certificate", "Delete", "$session_name deleted certificate $certificate_name", $client_id);
}
// Logging
logAction("Certificate", "Bulk Delete", "$session_name deleted $count certificates", $client_id);
$_SESSION['alert_message'] = "Deleted <strong>$count</strong> certificate(s)";
flash_alert("Deleted <strong>$count</strong> certificate(s)", 'error');
}
redirect();
}
if (isset($_POST['export_certificates_csv'])) {
@ -260,7 +254,6 @@ if (isset($_POST['export_certificates_csv'])) {
fpassthru($f);
}
// Logging
logAction("Certificate", "Export", "$session_name exported $num_rows certificate(s) to a CSV file", $client_id);
exit;

View File

@ -9,6 +9,7 @@ defined('FROM_POST_HANDLER') || die("Direct file access is not allowed");
if (isset($_POST['add_client'])) {
validateCSRFToken($_POST['csrf_token']);
enforceUserPermission('module_client', 2);
require_once 'client_model.php';
@ -48,7 +49,7 @@ if (isset($_POST['add_client'])) {
$sql = mysqli_query($mysqli, "SELECT category_name FROM categories WHERE category_type = 'Referral' AND category_archived_at IS NULL AND category_name = '$referral'");
if(mysqli_num_rows($sql) == 0) {
mysqli_query($mysqli, "INSERT INTO categories SET category_name = '$referral', category_type = 'Referral'");
// Logging
logAction("Category", "Create", "$session_name created referral category $referral");
}
@ -113,12 +114,11 @@ if (isset($_POST['add_client'])) {
}
// Logging
logAction("Client", "Create", "$session_name created client $name$extended_log_description", $client_id, $client_id);
$_SESSION['alert_message'] = "Client <strong>$name</strong> created";
flash_alert("Client <strong>$name</strong> created");
header("Location: clients.php");
redirect();
}
@ -137,7 +137,6 @@ if (isset($_POST['edit_client'])) {
if(mysqli_num_rows($sql) == 0) {
mysqli_query($mysqli, "INSERT INTO categories SET category_name = '$referral', category_type = 'Referral'");
// Logging
logAction("Category", "Create", "$session_name created referral category $referral");
}
@ -153,71 +152,68 @@ if (isset($_POST['edit_client'])) {
}
}
// Logging
logAction("Client", "Edit", "$session_name edited client $name", $client_id, $client_id);
$_SESSION['alert_message'] = "Client <strong>$name</strong> updated";
flash_alert("Client <strong>$name</strong> updated");
redirect();
}
if (isset($_GET['archive_client'])) {
validateCSRFToken($_GET['csrf_token']);
enforceUserPermission('module_client', 2);
$client_id = intval($_GET['archive_client']);
// Get Client Name
$sql = mysqli_query($mysqli, "SELECT client_name FROM clients WHERE client_id = $client_id");
$row = mysqli_fetch_array($sql);
$client_name = sanitizeInput($row['client_name']);
$client_name = sanitizeInput(getFieldById('clients', $client_id, 'client_name'));
mysqli_query($mysqli, "UPDATE clients SET client_archived_at = NOW() WHERE client_id = $client_id");
// Logging
logAction("Client", "Archive", "$session_name archived client $client_name", $client_id, $client_id);
$_SESSION['alert_type'] = "error";
$_SESSION['alert_message'] = "Client <strong>$client_name</strong> archived";
flash_alert("Client <strong>$client_name</strong> archived", 'error');
redirect();
}
if (isset($_GET['restore_client'])) {
validateCSRFToken($_GET['csrf_token']);
enforceUserPermission('module_client', 2);
$client_id = intval($_GET['restore_client']);
// Get Client Name
$sql = mysqli_query($mysqli, "SELECT * FROM clients WHERE client_id = $client_id");
$row = mysqli_fetch_array($sql);
$client_name = sanitizeInput($row['client_name']);
$client_name = sanitizeInput(getFieldById('clients', $client_id, 'client_name'));
mysqli_query($mysqli, "UPDATE clients SET client_archived_at = NULL WHERE client_id = $client_id");
// Logging
logAction("Client", "Restored", "$session_name restored client $client_name", $client_id);
$_SESSION['alert_message'] = "Client <strong>$client_name</strong> restored";
flash_alert("Client <strong>$client_name</strong> restored");
redirect();
}
if (isset($_GET['delete_client'])) {
validateCSRFToken($_GET['csrf_token']);
enforceUserPermission('module_client', 3);
$client_id = intval($_GET['delete_client']);
//Get Client Name
$sql = mysqli_query($mysqli, "SELECT * FROM clients WHERE client_id = $client_id");
$row = mysqli_fetch_array($sql);
$client_name = sanitizeInput($row['client_name']);
// Get Client Name
$client_name = sanitizeInput(getFieldById('clients', $client_id, 'client_name'));
// Delete Associations
// Delete Client Data
mysqli_query($mysqli, "DELETE FROM api_keys WHERE api_key_client_id = $client_id");
mysqli_query($mysqli, "DELETE FROM certificates WHERE certificate_client_id = $client_id");
@ -300,13 +296,12 @@ if (isset($_GET['delete_client'])) {
//Finally Remove the Client
mysqli_query($mysqli, "DELETE FROM clients WHERE client_id = $client_id");
//Logging
logAction("Client", "Deleted", "$session_name deleted Client $client_name and all associated data");
$_SESSION['alert_type'] = "error";
$_SESSION['alert_message'] = "Client <strong>$client_name</strong> deleted along with all associated data";
flash_alert("Client <strong>$client_name</strong> deleted along with all associated data", 'error');
redirect();
header("Location: clients.php");
}
if (isset($_POST['export_clients_csv'])) {
@ -352,6 +347,7 @@ if (isset($_POST['export_clients_csv'])) {
logAction("Client", "Export", "$session_name exported $num_rows client(s) to a CSV file");
}
exit;
}
@ -364,10 +360,8 @@ if (isset($_POST["import_clients_csv"])) {
if (!empty($_FILES["file"]["tmp_name"])) {
$file_name = $_FILES["file"]["tmp_name"];
} else {
$_SESSION['alert_message'] = "Please select a file to upload.";
$_SESSION['alert_type'] = "error";
flash_alert("Please select a file to upload.", 'error');
redirect();
exit();
}
//Check file is CSV
@ -375,13 +369,13 @@ if (isset($_POST["import_clients_csv"])) {
$allowed_file_extensions = array('csv');
if (in_array($file_extension,$allowed_file_extensions) === false) {
$error = true;
$_SESSION['alert_message'] = "Bad file extension";
flash_alert("Bad file extension", 'error');
}
//Check file isn't empty
elseif ($_FILES["file"]["size"] < 1) {
$error = true;
$_SESSION['alert_message'] = "Bad file size (empty?)";
flash_alert("Bad file size (empty?)", 'error');
}
//(Else)Check column count
@ -389,7 +383,7 @@ if (isset($_POST["import_clients_csv"])) {
$f_columns = fgetcsv($f, 1000, ",");
if (!$error & count($f_columns) != 22) {
$error = true;
$_SESSION['alert_message'] = "Bad column count.";
flash_alert("Bad column count.", 'error');
}
//Else, parse the file
@ -550,17 +544,16 @@ if (isset($_POST["import_clients_csv"])) {
}
fclose($file);
//Logging
logAction("Client", "Import", "$session_name imported $row_count client(s) via CSV file, $duplicate_count duplicate(s) found");
$_SESSION['alert_message'] = "<strong>$row_count</strong> Client(s) added, <strong>$duplicate_count</strong> duplicate(s) found";
flash_alert("<strong>$row_count</strong> Client(s) added, <strong>$duplicate_count</strong> duplicate(s) found");
redirect();
}
//Check for any errors, if there are notify user and redirect
if ($error) {
$_SESSION['alert_type'] = "warning";
redirect();
}
}
@ -586,16 +579,17 @@ if (isset($_GET['download_clients_csv_template'])) {
//output all remaining data on a file pointer
fpassthru($f);
exit;
}
if (isset($_POST['bulk_edit_client_industry'])) {
enforceUserPermission('module_client', 2);
validateCSRFToken($_POST['csrf_token']);
enforceUserPermission('module_client', 2);
$industry = sanitizeInput($_POST['bulk_industry']);
if (isset($_POST['client_ids'])) {
@ -611,15 +605,13 @@ if (isset($_POST['bulk_edit_client_industry'])) {
mysqli_query($mysqli,"UPDATE clients SET client_type = '$industry' WHERE client_id = $client_id");
//Logging
logAction("Client", "Edit", "$session_name set Industry to $industry for $client_name", $client_id);
}
// Bulk Log
logAction("Client", "Bulk Edit", "$session_name set the department $industry for $count client(s)", $client_id);
$_SESSION['alert_message'] = "Set the Industry to <strong>$industry</strong> for <strong>$count</strong> clients";
flash_alert("Set the Industry to <strong>$industry</strong> for <strong>$count</strong> clients");
}
redirect();
@ -628,10 +620,10 @@ if (isset($_POST['bulk_edit_client_industry'])) {
if (isset($_POST['bulk_edit_client_referral'])) {
enforceUserPermission('module_client', 2);
validateCSRFToken($_POST['csrf_token']);
enforceUserPermission('module_client', 2);
$referral = sanitizeInput($_POST['bulk_referral']);
if (isset($_POST['client_ids'])) {
@ -647,15 +639,13 @@ if (isset($_POST['bulk_edit_client_referral'])) {
mysqli_query($mysqli,"UPDATE clients SET client_referral = '$referral' WHERE client_id = $client_id");
//Logging
logAction("Client", "Edit", "$session_name set Referral to $referral for $client_name", $client_id);
}
// Bulk Log
logAction("Client", "Bulk Edit", "$session_name set the referral $referral for $count client(s)", $client_id);
$_SESSION['alert_message'] = "Set the Referral to <strong>$referral</strong> for <strong>$count</strong> clients";
flash_alert("Set the Referral to <strong>$referral</strong> for <strong>$count</strong> clients");
}
redirect();
@ -664,10 +654,10 @@ if (isset($_POST['bulk_edit_client_referral'])) {
if (isset($_POST['bulk_edit_client_hourly_rate'])) {
enforceUserPermission('module_client', 2);
validateCSRFToken($_POST['csrf_token']);
enforceUserPermission('module_client', 2);
$rate = floatval($_POST['bulk_rate']);
if (isset($_POST['client_ids'])) {
@ -683,15 +673,13 @@ if (isset($_POST['bulk_edit_client_hourly_rate'])) {
mysqli_query($mysqli,"UPDATE clients SET client_rate = '$rate' WHERE client_id = $client_id");
//Logging
logAction("Client", "Edit", "$session_name set Hourly Rate to" . numfmt_format_currency($currency_format, $rate, $session_company_currency) . "for $client_name", $client_id);
}
// Bulk Log
logAction("Client", "Bulk Edit", "$session_name set the hourly rate" . numfmt_format_currency($currency_format, $rate, $session_company_currency) . "for $count client(s)", $client_id);
$_SESSION['alert_message'] = "Set the Hourly Rate to <strong>" . numfmt_format_currency($currency_format, $rate, $session_company_currency) . "</strong> for <strong>$count</strong> client(s)";
flash_alert("Set the Hourly Rate to <strong>" . numfmt_format_currency($currency_format, $rate, $session_company_currency) . "</strong> for <strong>$count</strong> client(s)");
}
redirect();
@ -700,10 +688,10 @@ if (isset($_POST['bulk_edit_client_hourly_rate'])) {
if (isset($_POST['bulk_assign_client_tags'])) {
enforceUserPermission('module_client', 2);
validateCSRFToken($_POST['csrf_token']);
enforceUserPermission('module_client', 2);
if (isset($_POST['client_ids'])) {
$count = count($_POST['client_ids']);
@ -736,7 +724,7 @@ if (isset($_POST['bulk_assign_client_tags'])) {
logAction("Client", "Bulk Edit", "$session_name added tags for $count clients", $client_id);
$_SESSION['alert_message'] = "Assigned tags for <strong>$count</strong> clients";
flash_alert("Assigned tags for <strong>$count</strong> clients");
}
redirect();
@ -819,22 +807,21 @@ if (isset($_POST['bulk_send_client_email']) && isset($_POST['client_ids'])) {
if (!empty($data)) {
addToMailQueue($data);
logAction("Bulk Mail", "Send", "$session_name sent " . count($data) . " messages via bulk mail");
$_SESSION['alert_message'] = "<strong>" . count($data) . "</strong> messages queued";
flash_alert("<strong>" . count($data) . "</strong> messages queued");
} else {
$_SESSION['alert_message'] = "No valid contacts found to queue emails.";
flash_alert("No valid contacts found to queue emails.", 'error');
}
// Redirect back
redirect();
exit;
}
if (isset($_POST['bulk_archive_clients'])) {
enforceUserPermission('module_client', 2);
validateCSRFToken($_POST['csrf_token']);
enforceUserPermission('module_client', 2);
if (isset($_POST['client_ids'])) {
$count = 0;
@ -855,23 +842,22 @@ if (isset($_POST['bulk_archive_clients'])) {
}
// Bulk Logging
logAction("Client", "Bulk Archive", "$session_name archived $count clients", $client_id);
$_SESSION['alert_type'] = "error";
$_SESSION['alert_message'] = "Archived $count client(s)";
flash_alert("Archived $count client(s)", 'error');
}
redirect();
}
if (isset($_POST['bulk_unarchive_clients'])) {
enforceUserPermission('module_client', 2);
validateCSRFToken($_POST['csrf_token']);
enforceUserPermission('module_client', 2);
if (isset($_POST['client_ids'])) {
$count = count($_POST['client_ids']);
@ -886,19 +872,18 @@ if (isset($_POST['bulk_unarchive_clients'])) {
mysqli_query($mysqli,"UPDATE clients SET client_archived_at = NULL WHERE client_id = $client_id");
// Individual Contact logging
logAction("client", "Restore", "$session_name restored $client_name", $client_id);
}
// Bulk Logging
logAction("Client", "Bulk Restore", "$session_name restored $count client(s)", $client_id);
$_SESSION['alert_message'] = "You restored <strong>$count</strong> client(s)";
flash_alert("You restored <strong>$count</strong> client(s)");
}
redirect();
}
if (isset($_POST["export_client_pdf"])) {
@ -940,7 +925,6 @@ if (isset($_POST["export_client_pdf"])) {
$export_trips = intval($_POST["export_trips"]);
$export_logs = intval($_POST["export_logs"]);
// Logging
logAction("Client", "Export", "$session_name exported client data to a PDF file", $client_id, $client_id);
// Get client record (joining primary contact and primary location)
@ -1724,4 +1708,5 @@ if (isset($_POST["export_client_pdf"])) {
// Output the PDF document for download
$pdf->Output(strtoAZaz09($client_name) . "-IT_Documentation-" . date("Y-m-d") . ".pdf", "D");
exit;
}

View File

@ -66,12 +66,11 @@ if (isset($_POST['add_contact'])) {
}
}
// Logging
logAction("Contact", "Create", "$session_name created contact $name", $client_id, $contact_id);
customAction('contact_create', $contact_id);
$_SESSION['alert_message'] = "Contact <strong>$name</strong> created";
flash_alert("Contact <strong>$name</strong> created");
redirect();
@ -207,12 +206,11 @@ if (isset($_POST['edit_contact'])) {
}
//Logging
logAction("Contact", "Edit", "$session_name edited contact $name", $client_id, $contact_id);
customAction('contact_update', $contact_id);
$_SESSION['alert_message'] = "Contact <strong>$name</strong> updated";
flash_alert("Contact <strong>$name</strong> updated");
redirect();
@ -261,12 +259,9 @@ if (isset($_GET['archive_contact_note'])) {
mysqli_query($mysqli,"UPDATE contact_notes SET contact_note_archived_at = NOW() WHERE contact_note_id = $contact_note_id");
// Logging
logAction("Contact", "Edit", "$session_name archived note $contact_note_type for $contact_name", $client_id, $contact_id);
$_SESSION['alert_type'] = "error";
$_SESSION['alert_message'] = "Note <strong>$contact_note_type</strong> archived";
flash_alert("Note <strong>$contact_note_type</strong> archived", 'error');
redirect();
@ -288,10 +283,9 @@ if (isset($_GET['unarchive_contact_note'])) {
mysqli_query($mysqli,"UPDATE contact_notes SET contact_note_archived_at = NULL WHERE contact_note_id = $contact_note_id");
// Logging
logAction("Contact", "Edit", "$session_name restored note $contact_note_type for $contact_name", $client_id, $contact_id);
$_SESSION['alert_message'] = "Note <strong>$contact_note_type</strong> restored";
flash_alert("Note <strong>$contact_note_type</strong> restored");
redirect();
@ -313,11 +307,9 @@ if (isset($_GET['delete_contact_note'])) {
mysqli_query($mysqli,"DELETE FROM contact_notes WHERE contact_note_id = $contact_note_id");
//Logging
logAction("Contact", "Edit", "$session_name deleted $contact_note_type note for $contact_name", $client_id, $contact_id);
$_SESSION['alert_type'] = "error";
$_SESSION['alert_message'] = "Note <strong>$contact_note_type</strong> deleted.";
flash_alert("Note <strong>$contact_note_type</strong> deleted.", 'error');
redirect();
@ -351,15 +343,13 @@ if (isset($_POST['bulk_assign_contact_location'])) {
mysqli_query($mysqli,"UPDATE contacts SET contact_location_id = $location_id WHERE contact_id = $contact_id");
// Logging
logAction("Contact", "Edit", "$session_name assigned $contaxt_name to location $location_name", $client_id, $contact_id);
} // End Assign Location Loop
// Bulk Log
logAction("Contact", "Bulk Edit", "$session_name assigned $contact_count contacts to location $location_name", $client_id);
$_SESSION['alert_message'] = "You assigned <b>$contact_count</b> contacts to location <b>$location_name</b>";
flash_alert("<b>$contact_count</b> contacts assigned to location <b>$location_name</b>");
}
redirect();
@ -389,14 +379,13 @@ if (isset($_POST['bulk_edit_contact_phone'])) {
mysqli_query($mysqli,"UPDATE contacts SET contact_phone = '$phone' WHERE contact_id = $contact_id");
// Logging
logAction("Contact", "Edit", "$session_name set Phone Number to $phone for $contact_name", $client_id, $contact_id);
} // End Assign Location Loop
// Bulk Log
logAction("Contact", "Bulk Edit", "$session_name set the Phone Number $phone for $contact_count contacts", $client_id);
logAction("Contact", "Bulk Edit", "$session_name set the Phone Number $phone for $contact_count contacts", $client_id);
$_SESSION['alert_message'] = "You set Phone Number <b>" . formatPhoneNumber($phone) . "</b> on $contact_count</b> contacts";
flash_alert("Phone Number set to <b>" . formatPhoneNumber($phone) . "</b> on $contact_count</b> contacts");
}
redirect();
@ -426,15 +415,13 @@ if (isset($_POST['bulk_edit_contact_department'])) {
mysqli_query($mysqli,"UPDATE contacts SET contact_department = '$department' WHERE contact_id = $contact_id");
//Logging
logAction("Contact", "Edit", "$session_name set Department to $department for $contact_name", $client_id, $contact_id);
} // End Assign Location Loop
// Bulk Log
logAction("Contact", "Bulk Edit", "$session_name set the department $department for $contact_count contacts", $client_id);
$_SESSION['alert_message'] = "You set the Department to <strong>$department</strong> for <strong>$contact_count</strong> contacts";
flash_alert("You set the Department to <strong>$department</strong> for <strong>$contact_count</strong> contacts";
}
redirect();
@ -466,17 +453,15 @@ if (isset($_POST['bulk_edit_contact_role'])) {
mysqli_query($mysqli,"UPDATE contacts SET contact_important = $contact_important, contact_billing = $contact_billing, contact_technical = $contact_technical WHERE contact_id = $contact_id");
//Logging
logAction("Contact", "Edit", "$session_name updated the contact role for $contact_name", $client_id, $contact_id);
customAction('contact_update', $contact_id);
} // End Assign Location Loop
// Bulk Log
logAction("Contact", "Bulk Edit", "$session_name edited the contact role for $contact_count contacts", $client_id);
$_SESSION['alert_message'] = "You updated contact roles for <b>$contact_count</b> contacts";
flash_alert("You updated contact roles for <b>$contact_count</b> contacts");
}
redirect();
@ -519,15 +504,13 @@ if (isset($_POST['bulk_assign_contact_tags'])) {
}
}
//Logging
logAction("Contact", "Edit", "$session_name added tags to $contact_name", $client_id, $contact_id);
} // End Assign Location Loop
// Bulk Log
logAction("Contact", "Bulk Edit", "$session_name added tags for $contact_count contacts", $client_id);
$_SESSION['alert_message'] = "You assigned tags for <strong>$count</strong> contacts";
flash_alert("You assigned tags for <strong>$count</strong> contacts");
}
redirect();
@ -569,10 +552,9 @@ if (isset($_POST['send_bulk_mail_now'])) {
}
addToMailQueue($data);
// Logging
logAction("Bulk Mail", "Send", "$session_name sent $count messages via bulk mail");
$_SESSION['alert_message'] = "<strong>$count</strong> messages queued";
flash_alert("<strong>$count</strong> messages queued");
}
@ -620,11 +602,9 @@ if (isset($_POST['bulk_archive_contacts'])) {
}
// Bulk Logging
logAction("Contact", "Bulk Archive", "$session_name archived $count contacts", $client_id);
$_SESSION['alert_type'] = "error";
$_SESSION['alert_message'] = "Archived $count contact(s)";
flash_alert("Archived $count contact(s)", 'error');
}
@ -660,15 +640,13 @@ if (isset($_POST['bulk_unarchive_contacts'])) {
mysqli_query($mysqli,"UPDATE contacts SET contact_archived_at = NULL WHERE contact_id = $contact_id");
// Individual Contact logging
logAction("Contact", "Restore", "$session_name restored $contact_name", $client_id, $contact_id);
}
// Bulk Logging
logAction("Contact", "Bulk Restore", "$session_name restored $count contacts", $client_id);
$_SESSION['alert_message'] = "Restored <strong>$count</strong> contact(s)";
flash_alert("Restored <strong>$count</strong> contact(s)");
}
@ -677,9 +655,10 @@ if (isset($_POST['bulk_unarchive_contacts'])) {
if (isset($_POST['bulk_delete_contacts'])) {
enforceUserPermission('module_client', 3);
validateCSRFToken($_POST['csrf_token']);
enforceUserPermission('module_client', 3);
if (isset($_POST['contact_ids'])) {
// Get Selected Contacts Count
@ -704,19 +683,18 @@ if (isset($_POST['bulk_delete_contacts'])) {
mysqli_query($mysqli, "DELETE FROM contacts WHERE contact_id = $contact_id AND contact_client_id = $client_id");
// Individual Logging
logAction("Contact", "Delete", "$session_name deleted $contact_name", $client_id);
}
// Bulk Logging
logAction("Contact", "Bulk Delete", "$session_name deleted $count contacts", $client_id);
logAction("Contact", "Bulk Delete", "$session_name deleted $count contacts", $client_id);
$_SESSION['alert_message'] = "You deleted <strong>$count</strong> contact(s)";
flash_alert("You deleted <strong>$count</strong> contact(s)");
}
redirect();
}
if (isset($_GET['anonymize_contact'])) {
@ -804,7 +782,10 @@ if (isset($_GET['anonymize_contact'])) {
$ticket_reply_details = $ticket_reply['ticket_reply'];
$ticket_reply_details = str_ireplace($info_to_redact, "*****", $ticket_reply_details);
$ticket_reply_details = sanitizeInput($ticket_reply_details);
mysqli_query($mysqli,"UPDATE ticket_replies SET ticket_reply = '$ticket_reply_details' WHERE ticket_reply_id = $ticket_reply_id");
mysqli_query($mysqli,"UPDATE ticket_replies SET ticket_reply = '$ticket_reply_details'
WHERE ticket_reply_id = $ticket_reply_id"
);
}
}
@ -812,13 +793,12 @@ if (isset($_GET['anonymize_contact'])) {
// Archive contact
mysqli_query($mysqli,"UPDATE contacts SET contact_archived_at = NOW() WHERE contact_id = $contact_id");
// Logging
logAction("Contact", "Archive", "$session_name archived and anonymized contact", $client_id, $contact_id);
$_SESSION['alert_type'] = "error";
$_SESSION['alert_message'] = "Contact $contact_name anonymized & archived";
flash_alert("Contact $contact_name anonymized & archived", 'error');
redirect();
}
if (isset($_GET['archive_contact'])) {
@ -841,12 +821,9 @@ if (isset($_GET['archive_contact'])) {
mysqli_query($mysqli,"UPDATE contacts SET contact_important = 0, contact_billing = 0, contact_technical = 0, contact_archived_at = NOW() WHERE contact_id = $contact_id");
// Logging
logAction("Contact", "Archive", "$session_name archived contact $contact_name", $client_id, $contact_id);
$_SESSION['alert_type'] = "error";
$_SESSION['alert_message'] = "Contact <strong>$contact_name</strong> has been archived";
flash_alert("Contact <strong>$contact_name</strong> has been archived", 'error');
redirect();
@ -872,10 +849,9 @@ if (isset($_GET['unarchive_contact'])) {
mysqli_query($mysqli,"UPDATE contacts SET contact_archived_at = NULL WHERE contact_id = $contact_id");
// logging
logAction("Contact", "Unarchive", "$session_name unarchived contact $contact_name", $client_id, $contact_id);
$_SESSION['alert_message'] = "Contact <strong>$contact_name</strong> has been Unarchived";
flash_alert("Contact <strong>$contact_name</strong> has been Unarchived");
redirect();
@ -901,11 +877,9 @@ if (isset($_GET['delete_contact'])) {
mysqli_query($mysqli,"DELETE FROM contacts WHERE contact_id = $contact_id");
//Logging
logAction("Contact", "Delete", "$session_name deleted contact $contact_name", $client_id);
$_SESSION['alert_type'] = "error";
$_SESSION['alert_message'] = "Contact <strong>$contact_name</strong> has been deleted.";
flash_alert("Contact <strong>$contact_name</strong> has been deleted.", 'error');
redirect();
@ -925,16 +899,13 @@ if (isset($_POST['link_contact_to_asset'])) {
$client_id = intval($row['asset_client_id']);
// Get Contact Name for logging
$sql_contact = mysqli_query($mysqli,"SELECT contact_name FROM contacts WHERE contact_id = $contact_id");
$row = mysqli_fetch_array($sql_contact);
$contact_name = sanitizeInput($row['contact_name']);
$contact_name = sanitizeInput(getFieldById('contacts', $contact_id, 'contact_name'));
mysqli_query($mysqli,"UPDATE assets SET asset_contact_id = $contact_id WHERE asset_id = $asset_id");
// Logging
logAction("Asset", "Link", "$session_name linked asset $asset_name to contact $contact_name", $client_id, $asset_id);
$_SESSION['alert_message'] = "Contact <strong>$contact_name</strong> linked with asset <strong>$asset_name</strong>";
flash_alert("Contact <strong>$contact_name</strong> linked with asset <strong>$asset_name</strong>");
redirect();
@ -954,17 +925,13 @@ if (isset($_GET['unlink_asset_from_contact'])) {
$client_id = intval($row['asset_client_id']);
// Get Contact Name for logging
$sql_contact = mysqli_query($mysqli,"SELECT contact_name FROM contacts WHERE contact_id = $contact_id");
$row = mysqli_fetch_array($sql_contact);
$contact_name = sanitizeInput($row['contact_name']);
$contact_name = sanitizeInput(getFieldById('contacts', $contact_id, 'contact_name'));
mysqli_query($mysqli,"UPDATE assets SET asset_contact_id = 0 WHERE asset_id = $asset_id");
//Logging
logAction("Asset", "Unlink", "$session_name unlinked contact $contact_name from asset $asset_name", $client_id, $asset_id);
$_SESSION['alert_type'] = "error";
$_SESSION['alert_message'] = "Asset <strong>$asset_name</strong> unlinked from Contact <strong>$contact_name</strong>";
flash_alert("Asset <strong>$asset_name</strong> unlinked from Contact <strong>$contact_name</strong>", 'error');
redirect();
@ -984,16 +951,13 @@ if (isset($_POST['link_software_to_contact'])) {
$client_id = intval($row['software_client_id']);
// Get Contact Name for logging
$sql_contact = mysqli_query($mysqli,"SELECT contact_name FROM contacts WHERE contact_id = $contact_id");
$row = mysqli_fetch_array($sql_contact);
$contact_name = sanitizeInput($row['contact_name']);
$contact_name = sanitizeInput(getFieldById('contacts', $contact_id, 'contact_name'));
mysqli_query($mysqli,"INSERT INTO software_contacts SET contact_id = $contact_id, software_id = $software_id");
// Logging
logAction("Software", "Link", "$session_name added software license $software_name to contact $contact_name", $client_id, $software_id);
$_SESSION['alert_message'] = "Software <strong>$software_name</strong> licensed for contact <strong>$contact_name</strong>";
flash_alert("Software <strong>$software_name</strong> licensed for contact <strong>$contact_name</strong>");
redirect();
@ -1013,17 +977,13 @@ if (isset($_GET['unlink_software_from_contact'])) {
$client_id = intval($row['software_client_id']);
// Get Contact Name for logging
$sql_contact = mysqli_query($mysqli,"SELECT contact_name FROM contacts WHERE contact_id = $contact_id");
$row = mysqli_fetch_array($sql_contact);
$contact_name = sanitizeInput($row['contact_name']);
$contact_name = sanitizeInput(getFieldById('contacts', $contact_id, 'contact_name'));
mysqli_query($mysqli,"DELETE FROM software_contacts WHERE contact_id = $contact_id AND software_id = $software_id");
//Logging
logAction("software", "Unlink", "$session_name removed software license $software_name from contact $contact_name", $client_id, $software_id);
$_SESSION['alert_type'] = "error";
$_SESSION['alert_message'] = "Removed Software License <strong>$software_name</strong> for Contact <strong>$contact_name</strong>";
flash_alert("Removed Software License <strong>$software_name</strong> for Contact <strong>$contact_name</strong>", 'error');
redirect();
@ -1043,16 +1003,13 @@ if (isset($_POST['link_contact_to_credential'])) {
$client_id = intval($row['credential_client_id']);
// Get Contact Name for logging
$sql_contact = mysqli_query($mysqli,"SELECT contact_name FROM contacts WHERE contact_id = $contact_id");
$row = mysqli_fetch_array($sql_contact);
$contact_name = sanitizeInput($row['contact_name']);
$contact_name = sanitizeInput(getFieldById('contacts', $contact_id, 'contact_name'));
mysqli_query($mysqli,"UPDATE credentials SET credential_contact_id = $contact_id WHERE credential_id = $credential_id");
// Logging
logAction("Asset", "Link", "$session_name linked credential $credential_name to contact $contact_name", $client_id, $credential_id);
$_SESSION['alert_message'] = "Contact <strong>$contact_name</strong> linked with credential <strong>$credential_name</strong>";
flash_alert("Contact <strong>$contact_name</strong> linked with credential <strong>$credential_name</strong>");
redirect();
@ -1072,17 +1029,13 @@ if (isset($_GET['unlink_credential_from_contact'])) {
$client_id = intval($row['credential_client_id']);
// Get Contact Name for logging
$sql_contact = mysqli_query($mysqli,"SELECT contact_name FROM contacts WHERE contact_id = $contact_id");
$row = mysqli_fetch_array($sql_contact);
$contact_name = sanitizeInput($row['contact_name']);
$contact_name = sanitizeInput(getFieldById('contacts', $contact_id, 'contact_name'));
mysqli_query($mysqli,"UPDATE credentials SET credential_contact_id = 0 WHERE credential_id = $credential_id");
//Logging
logAction("Credential", "Unlink", "$session_name unlinked contact $contact_name from credential $credential_name", $client_id, $credential_id);
$_SESSION['alert_type'] = "error";
$_SESSION['alert_message'] = "Credential <strong>$credential_name</strong> unlinked from Contact <strong>$contact_name</strong>";
flash_alert("Credential <strong>$credential_name</strong> unlinked from Contact <strong>$contact_name</strong>", 'error');
redirect();
@ -1102,16 +1055,13 @@ if (isset($_POST['link_service_to_contact'])) {
$client_id = intval($row['service_client_id']);
// Get Contact Name for logging
$sql_contact = mysqli_query($mysqli,"SELECT contact_name FROM contacts WHERE contact_id = $contact_id");
$row = mysqli_fetch_array($sql_contact);
$contact_name = sanitizeInput($row['contact_name']);
$contact_name = sanitizeInput(getFieldById('contacts', $contact_id, 'contact_name'));
mysqli_query($mysqli,"INSERT INTO service_contacts SET contact_id = $contact_id, service_id = $service_id");
// Logging
logAction("Service", "Link", "$session_name linked contact $contact_name to service $service_name", $client_id, $service_id);
$_SESSION['alert_message'] = "service <strong>$service_name</strong> linked with contact <strong>$contact_name</strong>";
flash_alert("service <strong>$service_name</strong> linked with contact <strong>$contact_name</strong>");
redirect();
@ -1131,17 +1081,13 @@ if (isset($_GET['unlink_service_from_contact'])) {
$client_id = intval($row['service_client_id']);
// Get Contact Name for logging
$sql_contact = mysqli_query($mysqli,"SELECT contact_name FROM contacts WHERE contact_id = $contact_id");
$row = mysqli_fetch_array($sql_contact);
$contact_name = sanitizeInput($row['contact_name']);
$contact_name = sanitizeInput(getFieldById('contacts', $contact_id, 'contact_name'));
mysqli_query($mysqli,"DELETE FROM service_contacts WHERE contact_id = $contact_id AND service_id = $service_id");
//Logging
logAction("service", "Unlink", "$session_name unlinked contact $contact_name from service $service_name", $client_id, $service_id);
$_SESSION['alert_type'] = "error";
$_SESSION['alert_message'] = "Contact <strong>$contact_name</strong> unlinked from service <strong>$service_name</strong>";
flash_alert("Contact <strong>$contact_name</strong> unlinked from service <strong>$service_name</strong>", 'error');
redirect();
@ -1161,17 +1107,14 @@ if (isset($_POST['link_contact_to_file'])) {
$client_id = intval($row['file_client_id']);
// Get Contact Name for logging
$sql_contact = mysqli_query($mysqli,"SELECT contact_name FROM contacts WHERE contact_id = $contact_id");
$row = mysqli_fetch_array($sql_contact);
$contact_name = sanitizeInput($row['contact_name']);
$contact_name = sanitizeInput(getFieldById('contacts', $contact_id, 'contact_name'));
// Contact add query
mysqli_query($mysqli,"INSERT INTO contact_files SET contact_id = $contact_id, file_id = $file_id");
// Logging
logAction("File", "Link", "$session_name linked contact $contact_name to file $file_name", $client_id, $file_id);
$_SESSION['alert_message'] = "Contact <strong>$contact_name</strong> linked with File <strong>$file_name</strong>";
flash_alert("Contact <strong>$contact_name</strong> linked with File <strong>$file_name</strong>");
redirect();
@ -1191,17 +1134,13 @@ if (isset($_GET['unlink_contact_from_file'])) {
$client_id = intval($row['file_client_id']);
// Get Contact Name for logging
$sql_contact = mysqli_query($mysqli,"SELECT contact_name FROM contacts WHERE contact_id = $contact_id");
$row = mysqli_fetch_array($sql_contact);
$contact_name = sanitizeInput($row['contact_name']);
$contact_name = sanitizeInput(getFieldById('contacts', $contact_id, 'contact_name'));
mysqli_query($mysqli,"DELETE FROM contact_files WHERE contact_id = $contact_id AND file_id = $file_id");
//Logging
logAction("File", "Unlink", "$session_name unlinked contact $contact_name from file $file_name", $client_id, $file_id);
$_SESSION['alert_type'] = "error";
$_SESSION['alert_message'] = "Contact <strong>$contact_name</strong> unlinked from file <strong>$file_name</strong>";
flash_alert("Contact <strong>$contact_name</strong> unlinked from file <strong>$file_name</strong>", 'error');
redirect();
@ -1252,7 +1191,6 @@ if (isset($_POST['export_contacts_csv'])) {
}
//Logging
logAction("Contact", "Export", "$session_name exported $num_rows contact(s) to a CSV file", $client_id);
exit;
@ -1269,10 +1207,8 @@ if (isset($_POST["import_contacts_csv"])) {
if (!empty($_FILES["file"]["tmp_name"])) {
$file_name = $_FILES["file"]["tmp_name"];
} else {
$_SESSION['alert_message'] = "Please select a file to upload.";
$_SESSION['alert_type'] = "error";
flash_alert("Please select a file to upload.", 'error');
redirect();
exit();
}
//Check file is CSV
@ -1280,13 +1216,13 @@ if (isset($_POST["import_contacts_csv"])) {
$allowed_file_extensions = array('csv');
if (in_array($file_extension,$allowed_file_extensions) === false) {
$error = true;
$_SESSION['alert_message'] = "Bad file extension";
flash_alert("Bad file extension", 'error');
}
//Check file isn't empty
elseif ($_FILES["file"]["size"] < 1) {
$error = true;
$_SESSION['alert_message'] = "Bad file size (empty?)";
flash_alert("Bad file size (empty?)", 'error');
}
//(Else)Check column count
@ -1294,7 +1230,7 @@ if (isset($_POST["import_contacts_csv"])) {
$f_columns = fgetcsv($f, 1000, ",");
if (!$error & count($f_columns) != 8) {
$error = true;
$_SESSION['alert_message'] = "Bad column count.";
flash_alert("Bad column count.", 'error');
}
//Else, parse the file
@ -1349,17 +1285,18 @@ if (isset($_POST["import_contacts_csv"])) {
}
fclose($file);
//Logging
logAction("Contact", "Import", "$session_name imported $row_count contact(s) via CSV file", $client_id);
$_SESSION['alert_message'] = "$row_count Contact(s) added, $duplicate_count duplicate(s) detected";
flash_alert("$row_count Contact(s) added, $duplicate_count duplicate(s) detected", 'warning');
redirect();
}
//Check for any errors, if there are notify user and redirect
if ($error) {
$_SESSION['alert_type'] = "warning";
redirect();
}
}
if (isset($_GET['download_contacts_csv_template'])) {