diff --git a/CHANGELOG.md b/CHANGELOG.md index dcddde35..b64080bc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,21 @@ This file documents all notable changes made to ITFlow. +## [25.01.01] + +### Added / Changed +- Redesigned the Multi-Factor Authentication (MFA) Setup and Enforcement Flow UI/UX for a more intuitive user experience. +- Added a "Member" column in the user roles listing for improved visibility. +- General UI/UX improvements, along with minor performance optimizations and cleanups. + +### Fixed +- Fixed an issue where Stripe was not appearing as a recurring payment option. +- Corrected inaccurate Quarter 2 Expense results in the Profit & Loss Report. +- Resolved TOTP code not displaying correctly on hover in the Contact or Asset Details sections. +- Archived contacts no longer appear in the Bulk Mail section. +- Fixed an issue where the Ticket Assign Modal was showing both ITFlow and client users. +- Fixed issue with login key redirecting to legacy client portal page. + ## [25.01] ### Added / Changed diff --git a/admin_bulk_mail.php b/admin_bulk_mail.php index 8ede4dd8..0d68f27f 100644 --- a/admin_bulk_mail.php +++ b/admin_bulk_mail.php @@ -4,7 +4,8 @@ require_once "includes/inc_all_admin.php"; $sql = mysqli_query($mysqli, "SELECT * FROM contacts LEFT JOIN clients ON client_id = contact_client_id - WHERE contact_archived_at IS NULL + WHERE client_archived_at IS NULL + AND contact_archived_at IS NULL AND contact_email != '' AND (contact_primary = 1 OR contact_important = 1 OR @@ -22,7 +23,7 @@ $sql = mysqli_query($mysqli, "SELECT * FROM contacts

Bulk Mail

diff --git a/admin_mail_queue.php b/admin_mail_queue.php index c662ebe7..841695fc 100644 --- a/admin_mail_queue.php +++ b/admin_mail_queue.php @@ -102,11 +102,6 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli, "SELECT FOUND_ROWS()")); - - - ID - - Queued @@ -137,7 +132,7 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli, "SELECT FOUND_ROWS()")); Attempts - Action + Action @@ -175,14 +170,13 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli, "SELECT FOUND_ROWS()")); - $email_from_name"?> $email_recipient_name"?> - + diff --git a/admin_role.php b/admin_role.php index db315d07..d59c2c4e 100644 --- a/admin_role.php +++ b/admin_role.php @@ -21,7 +21,7 @@ $sql = mysqli_query( $num_rows = mysqli_fetch_row(mysqli_query($mysqli, "SELECT FOUND_ROWS()")); ?> -
Roles are still in development. Permissions may not be fully enforced.
+
Roles are still in development. Permissions may not be fully enforced.
@@ -54,22 +54,15 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli, "SELECT FOUND_ROWS()")); - Name - - - - - Description + Role + Members Admin - - User count - Action @@ -87,16 +80,32 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli, "SELECT FOUND_ROWS()")); $sql_role_user_count = mysqli_query($mysqli, "SELECT COUNT(users.user_id) FROM users LEFT JOIN user_settings on users.user_id = user_settings.user_id WHERE user_role = $role_id AND user_archived_at IS NULL"); $role_user_count = mysqli_fetch_row($sql_role_user_count)[0]; + $sql_users = mysqli_query($mysqli, "SELECT * FROM users LEFT JOIN user_settings on users.user_id = user_settings.user_id WHERE user_role = $role_id AND user_archived_at IS NULL"); + // Initialize an empty array to hold user names + $user_names = []; + + // Fetch each row and store the user_name in the array + while($row = mysqli_fetch_assoc($sql_users)) { + $user_names[] = nullable_htmlentities($row['user_name']); + } + + // Convert the array of user names to a comma-separated string + $user_names_string = implode(",", $user_names) ; + + if (empty($user_names_string)) { + $user_names_string = "-"; + } + ?> - -
+
+ +
- + -