From f2dc25aedb98ab0ed84cef83c960da6d666c7788 Mon Sep 17 00:00:00 2001 From: johnnyq Date: Mon, 24 Feb 2025 19:08:00 -0500 Subject: [PATCH] Added Link to and unlink Items in Asset Details --- asset_details.php | 107 ++++++++++- client_overview.php | 30 +-- modals/asset_link_credential_modal.php | 51 ++++++ modals/asset_link_document_modal.php | 57 ++++++ modals/asset_link_file_modal.php | 59 ++++++ modals/asset_link_service_modal.php | 56 ++++++ modals/asset_link_software_modal.php | 58 ++++++ post/user/asset.php | 242 +++++++++++++++++++++++++ 8 files changed, 635 insertions(+), 25 deletions(-) create mode 100644 modals/asset_link_credential_modal.php create mode 100644 modals/asset_link_document_modal.php create mode 100644 modals/asset_link_file_modal.php create mode 100644 modals/asset_link_service_modal.php create mode 100644 modals/asset_link_software_modal.php diff --git a/asset_details.php b/asset_details.php index f0ddb509..ababfcdb 100644 --- a/asset_details.php +++ b/asset_details.php @@ -217,6 +217,16 @@ if (isset($_GET['asset_id'])) { $software_count = mysqli_num_rows($sql_related_software); + // Linked Services + $sql_linked_services = mysqli_query($mysqli, "SELECT * FROM service_assets, services + WHERE service_assets.asset_id = $asset_id + AND service_assets.service_id = services.service_id + ORDER BY service_name ASC" + ); + $service_count = mysqli_num_rows($sql_linked_services); + + $linked_services = array(); + ?>
@@ -357,28 +367,24 @@ if (isset($_GET['asset_id'])) {
@@ -1102,4 +1182,11 @@ require_once "modals/asset_interface_import_modal.php"; require_once "modals/asset_interface_export_modal.php"; require_once "modals/ticket_add_modal.php"; require_once "modals/recurring_ticket_add_modal.php"; + +require_once "modals/asset_link_software_modal.php"; +require_once "modals/asset_link_credential_modal.php"; +require_once "modals/asset_link_service_modal.php"; +require_once "modals/asset_link_document_modal.php"; +require_once "modals/asset_link_file_modal.php"; + require_once "includes/footer.php"; diff --git a/client_overview.php b/client_overview.php index 3417a6e0..ead88b74 100644 --- a/client_overview.php +++ b/client_overview.php @@ -358,7 +358,7 @@ $sql_asset_retired = mysqli_query(

Domain: - -- () + -- ()

Certificate: - -- () + -- ()

- + Asset Warranty: -- ()

@@ -413,7 +413,7 @@ $sql_asset_retired = mysqli_query( ?>

- + Asset Retire: -- ()

@@ -432,7 +432,7 @@ $sql_asset_retired = mysqli_query( ?>

- + License: -- ()

@@ -475,8 +475,8 @@ $sql_asset_retired = mysqli_query( ?>

- - -- + Domain: + -- ()

- - -- + Certificate: + -- ()

- + Asset Warranty: - -- + -- ()

@@ -531,8 +531,8 @@ $sql_asset_retired = mysqli_query( ?>

- - -- + Asset Retire: + -- ()

- - -- + Software: + -- ()

+ + diff --git a/modals/asset_link_document_modal.php b/modals/asset_link_document_modal.php new file mode 100644 index 00000000..63ffa0a4 --- /dev/null +++ b/modals/asset_link_document_modal.php @@ -0,0 +1,57 @@ + diff --git a/modals/asset_link_file_modal.php b/modals/asset_link_file_modal.php new file mode 100644 index 00000000..09b4a1e1 --- /dev/null +++ b/modals/asset_link_file_modal.php @@ -0,0 +1,59 @@ + diff --git a/modals/asset_link_service_modal.php b/modals/asset_link_service_modal.php new file mode 100644 index 00000000..7b86bb19 --- /dev/null +++ b/modals/asset_link_service_modal.php @@ -0,0 +1,56 @@ + diff --git a/modals/asset_link_software_modal.php b/modals/asset_link_software_modal.php new file mode 100644 index 00000000..1af3fbf8 --- /dev/null +++ b/modals/asset_link_software_modal.php @@ -0,0 +1,58 @@ + diff --git a/post/user/asset.php b/post/user/asset.php index 46db87ad..7208108f 100644 --- a/post/user/asset.php +++ b/post/user/asset.php @@ -495,6 +495,248 @@ if (isset($_POST['bulk_unarchive_assets'])) { header("Location: " . $_SERVER["HTTP_REFERER"]); } +// BEGIN LINKING + +if (isset($_POST['link_software_to_asset'])) { + + enforceUserPermission('module_support', 2); + + $software_id = intval($_POST['software_id']); + $asset_id = intval($_POST['asset_id']); + + // Get software Name and Client ID for logging + $sql_software = mysqli_query($mysqli,"SELECT software_name, software_client_id FROM software WHERE software_id = $software_id"); + $row = mysqli_fetch_array($sql_software); + $software_name = sanitizeInput($row['software_name']); + $client_id = intval($row['software_client_id']); + + // Get Asset Name for logging + $sql_asset = mysqli_query($mysqli,"SELECT asset_name FROM assets WHERE asset_id = $asset_id"); + $row = mysqli_fetch_array($sql_asset); + $asset_name = sanitizeInput($row['asset_name']); + + mysqli_query($mysqli,"INSERT INTO software_assets SET asset_id = $asset_id, software_id = $software_id"); + + // Logging + logAction("Software", "Link", "$session_name added software license $software_name to asset $asset_name", $client_id, $software_id); + + $_SESSION['alert_message'] = "Software $software_name licensed for asset $asset_name"; + + header("Location: " . $_SERVER["HTTP_REFERER"]); + +} + +if (isset($_GET['unlink_software_from_asset'])) { + + enforceUserPermission('module_support', 2); + + $asset_id = intval($_GET['asset_id']); + $software_id = intval($_GET['software_id']); + + // Get software Name and Client ID for logging + $sql_software = mysqli_query($mysqli,"SELECT software_name, software_client_id FROM software WHERE software_id = $software_id"); + $row = mysqli_fetch_array($sql_software); + $software_name = sanitizeInput($row['software_name']); + $client_id = intval($row['software_client_id']); + + // Get Asset Name for logging + $sql_asset = mysqli_query($mysqli,"SELECT asset_name FROM assets WHERE asset_id = $asset_id"); + $row = mysqli_fetch_array($sql_asset); + $asset_name = sanitizeInput($row['asset_name']); + + mysqli_query($mysqli,"DELETE FROM software_assets WHERE asset_id = $asset_id AND software_id = $software_id"); + + //Logging + logAction("software", "Unlink", "$session_name removed software license $software_name from asset $asset_name", $client_id, $software_id); + + $_SESSION['alert_type'] = "error"; + $_SESSION['alert_message'] = "Removed Software License $software_name for Asset $asset_name"; + + header("Location: " . $_SERVER["HTTP_REFERER"]); + +} +// Right now 1 login and have many assets but not many to many +if (isset($_POST['link_asset_to_credential'])) { + + enforceUserPermission('module_support', 2); + + $login_id = intval($_POST['login_id']); + $asset_id = intval($_POST['asset_id']); + + // Get login Name and Client ID for logging + $sql_login = mysqli_query($mysqli,"SELECT login_name, login_client_id FROM logins WHERE login_id = $login_id"); + $row = mysqli_fetch_array($sql_login); + $login_name = sanitizeInput($row['login_name']); + $client_id = intval($row['login_client_id']); + + // Get Asset Name for logging + $sql_asset = mysqli_query($mysqli,"SELECT asset_name FROM assets WHERE asset_id = $asset_id"); + $row = mysqli_fetch_array($sql_asset); + $asset_name = sanitizeInput($row['asset_name']); + + mysqli_query($mysqli,"UPDATE logins SET login_asset_id = $asset_id WHERE login_id = $login_id"); + + // Logging + logAction("Credential", "Link", "$session_name linked credential $login_name to asset $asset_name", $client_id, $login_id); + + $_SESSION['alert_message'] = "Asset $asset_name linked with credential $login_name"; + + header("Location: " . $_SERVER["HTTP_REFERER"]); + +} + +if (isset($_GET['unlink_credential_from_asset'])) { + + enforceUserPermission('module_support', 2); + + $asset_id = intval($_GET['asset_id']); + $login_id = intval($_GET['login_id']); + + // Get login Name and Client ID for logging + $sql_login = mysqli_query($mysqli,"SELECT login_name, login_client_id FROM logins WHERE login_id = $login_id"); + $row = mysqli_fetch_array($sql_login); + $login_name = sanitizeInput($row['login_name']); + $client_id = intval($row['login_client_id']); + + // Get Asset Name for logging + $sql_asset = mysqli_query($mysqli,"SELECT asset_name FROM assets WHERE asset_id = $asset_id"); + $row = mysqli_fetch_array($sql_asset); + $asset_name = sanitizeInput($row['asset_name']); + + mysqli_query($mysqli,"UPDATE logins SET login_asset_id = 0 WHERE login_id = $login_id"); + + //Logging + logAction("Credential", "Unlink", "$session_name unlinked asset $asset_name from credential $login_name", $client_id, $login_id); + + $_SESSION['alert_type'] = "error"; + $_SESSION['alert_message'] = "Credential $login_name unlinked from Asset $asset_name"; + + header("Location: " . $_SERVER["HTTP_REFERER"]); + +} + +if (isset($_POST['link_service_to_asset'])) { + + enforceUserPermission('module_support', 2); + + $service_id = intval($_POST['service_id']); + $asset_id = intval($_POST['asset_id']); + + // Get service Name and Client ID for logging + $sql_service = mysqli_query($mysqli,"SELECT service_name, service_client_id FROM services WHERE service_id = $service_id"); + $row = mysqli_fetch_array($sql_service); + $service_name = sanitizeInput($row['service_name']); + $client_id = intval($row['service_client_id']); + + // Get Asset Name for logging + $sql_asset = mysqli_query($mysqli,"SELECT asset_name FROM assets WHERE asset_id = $asset_id"); + $row = mysqli_fetch_array($sql_asset); + $asset_name = sanitizeInput($row['asset_name']); + + mysqli_query($mysqli,"INSERT INTO service_assets SET asset_id = $asset_id, service_id = $service_id"); + + // Logging + logAction("Service", "Link", "$session_name linked asset $asset_name to service $service_name", $client_id, $service_id); + + $_SESSION['alert_message'] = "Service $service_name linked with asset $asset_name"; + + header("Location: " . $_SERVER["HTTP_REFERER"]); + +} + +if (isset($_GET['unlink_service_from_asset'])) { + + enforceUserPermission('module_support', 2); + + $asset_id = intval($_GET['asset_id']); + $service_id = intval($_GET['service_id']); + + // Get service Name and Client ID for logging + $sql_service = mysqli_query($mysqli,"SELECT service_name, service_client_id FROM services WHERE service_id = $service_id"); + $row = mysqli_fetch_array($sql_service); + $service_name = sanitizeInput($row['service_name']); + $client_id = intval($row['service_client_id']); + + // Get Asset Name for logging + $sql_asset = mysqli_query($mysqli,"SELECT asset_name FROM assets WHERE asset_id = $asset_id"); + $row = mysqli_fetch_array($sql_asset); + $asset_name = sanitizeInput($row['asset_name']); + + mysqli_query($mysqli,"DELETE FROM service_assets WHERE asset_id = $asset_id AND service_id = $service_id"); + + //Logging + logAction("Service", "Unlink", "$session_name unlinked asset $asset_name from service $service_name", $client_id, $service_id); + + $_SESSION['alert_type'] = "error"; + $_SESSION['alert_message'] = "Asset $asset_name unlinked from service $service_name"; + + header("Location: " . $_SERVER["HTTP_REFERER"]); + +} + +if (isset($_POST['link_asset_to_file'])) { + + enforceUserPermission('module_support', 2); + + $file_id = intval($_POST['file_id']); + $asset_id = intval($_POST['asset_id']); + + // Get file Name and Client ID for logging + $sql_file = mysqli_query($mysqli,"SELECT file_name, file_client_id FROM files WHERE file_id = $file_id"); + $row = mysqli_fetch_array($sql_file); + $file_name = sanitizeInput($row['file_name']); + $client_id = intval($row['file_client_id']); + + // Get Asset Name for logging + $sql_asset = mysqli_query($mysqli,"SELECT asset_name FROM assets WHERE asset_id = $asset_id"); + $row = mysqli_fetch_array($sql_asset); + $asset_name = sanitizeInput($row['asset_name']); + + // asset add query + mysqli_query($mysqli,"INSERT INTO asset_files SET asset_id = $asset_id, file_id = $file_id"); + + // Logging + logAction("File", "Link", "$session_name linked asset $asset_name to file $file_name", $client_id, $file_id); + + $_SESSION['alert_message'] = "Asset $asset_name linked with File $file_name"; + + header("Location: " . $_SERVER["HTTP_REFERER"]); + +} + +if (isset($_GET['unlink_asset_from_file'])) { + + enforceUserPermission('module_support', 2); + + $asset_id = intval($_GET['asset_id']); + $file_id = intval($_GET['file_id']); + + // Get file Name and Client ID for logging + $sql_file = mysqli_query($mysqli,"SELECT file_name, file_client_id FROM files WHERE file_id = $file_id"); + $row = mysqli_fetch_array($sql_file); + $file_name = sanitizeInput($row['file_name']); + $client_id = intval($row['file_client_id']); + + // Get Asset Name for logging + $sql_asset = mysqli_query($mysqli,"SELECT asset_name FROM assets WHERE asset_id = $asset_id"); + $row = mysqli_fetch_array($sql_asset); + $asset_name = sanitizeInput($row['asset_name']); + + mysqli_query($mysqli,"DELETE FROM asset_files WHERE asset_id = $asset_id AND file_id = $file_id"); + + //Logging + logAction("File", "Unlink", "$session_name unlinked asset $asset_name from file $file_name", $client_id, $file_id); + + $_SESSION['alert_type'] = "error"; + $_SESSION['alert_message'] = "Asset $asset_name unlinked from file $file_name"; + + header("Location: " . $_SERVER["HTTP_REFERER"]); + +} + +// END LINKING + + if (isset($_POST["import_assets_csv"])) { enforceUserPermission('module_support', 2);