Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
9b77bbd
declare intval
johnnyq May 22, 2026
63d8691
Generate Secure link: Use intval for item_expires and include HOUR in…
johnnyq Jun 2, 2026
300a1af
Login: Uodate Email text field to email type
johnnyq Jun 7, 2026
2204bd5
Rewrite email parser using ImapEngine, harden processing loop
johnnyq Jun 12, 2026
d3a9365
Allow PHP-8.2 and up Compatibility instead of just PHP-8.4
johnnyq Jun 12, 2026
d2d1a75
Generate CSRF Token during Client Portal login when using Entra
johnnyq Jun 12, 2026
b1a5b34
Do not send an inapp alert on successful cron execution, keep it in l…
johnnyq Jun 23, 2026
6532c2d
User Preferences Avatar: Fix creating user upload directory if doesnt…
johnnyq Jun 24, 2026
a819dff
Mail: Update mail configuration check to use smtp_provider instead of…
johnnyq Jun 24, 2026
6e7d2b2
Invoice Late Overdue notices shows correct balance when late fees are…
johnnyq Jun 24, 2026
63ad325
CLI Setup: Add repo_branch option defaults to master
johnnyq Jun 24, 2026
171a0d3
Mail Parser: Completely remove Webklex IMAP and all dependcies
johnnyq Jun 24, 2026
3d858eb
Update to latest version of imapengine 1.25.0
johnnyq Jun 24, 2026
bd310d1
Bump PHPMailer from 7.0.2 to 7.1.1
johnnyq Jun 24, 2026
ceec38d
Bump Fullcalendar from 6.1.20 to 7.0.0 amd convert existing code to c…
johnnyq Jun 24, 2026
2010aca
Bump TinyMCE from 8.5.0 to 8.6.0
johnnyq Jun 24, 2026
8e9cd7a
Bump Sortablejs from 1.15.6 to 1.15.7
johnnyq Jun 24, 2026
298569a
Mail Setting UI: Rework the entire Mail Configuration
johnnyq Jun 25, 2026
a53d828
MAil Settings: Further UI Sprucing added more placeholder text field …
johnnyq Jun 25, 2026
c16a175
Add text MonoSpace in places where it needs to be, reduced info icon …
johnnyq Jun 25, 2026
f14fa22
USe enforceClientAccess and enforceUserPermissions on Client related …
johnnyq Jun 26, 2026
e7b5338
Check CSRF and Enforce ClientAccess when deactivating Shared Items
johnnyq Jun 26, 2026
48c33ae
Enforce Client Access and Role Access for AI Ticket Summary
johnnyq Jun 26, 2026
166a606
Remove client counts on clients listing page
johnnyq Jun 26, 2026
6a44866
Clients: Only show 3 tags per line
johnnyq Jun 26, 2026
1bcc535
Updated Changelog and Bump ITFlow version and update logs timestamp f…
johnnyq Jun 28, 2026
fab5dbe
Don't set Theme to Gray amd blue when in client section always Keep c…
johnnyq Jun 29, 2026
9f14e97
Update changelog
johnnyq Jun 29, 2026
fe9e327
Fix missing )
johnnyq Jul 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
25 changes: 25 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,31 @@

This file documents all notable changes made to ITFlow.

## [26.07]

### Major Changes
- Migrated from Webklex php Library to IMAPEngine.
- Major Rewrite of the mail settings page to better support Microsoft 365 and Google OAUTH2.

### Bug fixes
- Many Security Fixes.
- Microsoft 365 and Google can now specify Licensed User.
- Clients - Only show 3 Tags per line instead of streching all the way across.
- Login: Make Email field email type instead of text.
- Fixed Invoice Late Overdue notices now shows correct balance when late fees are attached and if partial invoice was paid.
- User Preferences Avatar: Fix creating user upload directory if doesn't exist, and remove Avatar now properly deletes the old avatar image.
- Do not send an in-app alert on successful cron execution, keep it in logging only.
- Fix Issues with Clients Signing in via Entra in the client Portal, items were broken because CSRF token was not being generated.

### New Features & Updates
- Clients: Removed Entity Stat Counter was slow and unused.
- Added Monospace text in areas where it deserves it like, IPs, Amounts Costs in Tabular data forms etc.
- Cicking into the client section no longer turns the main nav and text gray, it keeps the configured theme across the app. It was implmented long ago to differentiate between the client section and the main section of ITFLow but didn't work very well.
- Bump Sortablejs from 1.15.6 to 1.15.7.
- Bump TinyMCE from 8.5.0 to 8.6.0.
- Bump Fullcalendar from 6.1.20 to 7.0.0 amd convert existing code to comply with 7.0, also make calendar more printable.
- Bump PHPMailer from 7.0.2 to 7.1.1.

## [26.05.1] Stable Release
- Security Fixes.

Expand Down
2 changes: 1 addition & 1 deletion admin/app_log.php
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@

<div class="col-sm-2">
<div class="form-group">
<select class="form-control select2" name="type" onchange="this.form.submit()">

Check warning on line 64 in admin/app_log.php

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Add an "id" attribute to this input field and associate it with a label.

See more on https://sonarcloud.io/project/issues?id=itflow-org_itflow&issues=AZ8ePo-1ACxDXHuRpJ1t&open=AZ8ePo-1ACxDXHuRpJ1t&pullRequest=1289
<option value="">- All Types -</option>

<?php
Expand Down Expand Up @@ -151,7 +151,7 @@
?>

<tr>
<td><?php echo $log_created_at; ?></td>
<td class="text-monospace"><?php echo $log_created_at; ?></td>
<td><?php echo $log_type; ?></td>
<td><?php echo $log_category; ?></td>
<td><?php echo $log_details; ?></td>
Expand Down
4 changes: 2 additions & 2 deletions admin/audit_log.php
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@
<div class="row">
<div class="col-sm-4">
<div class="input-group mb-3 mb-md-0">
<input type="search" class="form-control" name="q" value="<?php if (isset($q)) { echo stripslashes(nullable_htmlentities($q)); } ?>" placeholder="Search audit logs">

Check warning on line 76 in admin/audit_log.php

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Add an "id" attribute to this input field and associate it with a label.

See more on https://sonarcloud.io/project/issues?id=itflow-org_itflow&issues=AZ8ePo99ACxDXHuRpJ1h&open=AZ8ePo99ACxDXHuRpJ1h&pullRequest=1289
<div class="input-group-append">
<button class="btn btn-secondary" type="button" data-toggle="collapse" data-target="#advancedFilter"><i class="fas fa-filter"></i></button>
<button class="btn btn-primary"><i class="fa fa-search"></i></button>
Expand Down Expand Up @@ -103,7 +103,7 @@

<div class="col-sm-2">
<div class="input-group mb-3 mb-md-0">
<select class="form-control select2" name="user" onchange="this.form.submit()">

Check warning on line 106 in admin/audit_log.php

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Add an "id" attribute to this input field and associate it with a label.

See more on https://sonarcloud.io/project/issues?id=itflow-org_itflow&issues=AZ8ePo99ACxDXHuRpJ1j&open=AZ8ePo99ACxDXHuRpJ1j&pullRequest=1289
<option value="">- All Users -</option>

<?php
Expand All @@ -123,7 +123,7 @@

<div class="col-sm-2">
<div class="input-group mb-3 mb-md-0">
<select class="form-control select2" name="type" onchange="this.form.submit()">

Check warning on line 126 in admin/audit_log.php

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Add an "id" attribute to this input field and associate it with a label.

See more on https://sonarcloud.io/project/issues?id=itflow-org_itflow&issues=AZ8ePo99ACxDXHuRpJ1k&open=AZ8ePo99ACxDXHuRpJ1k&pullRequest=1289
<option value="">- All Types -</option>

<?php
Expand Down Expand Up @@ -164,7 +164,7 @@
<div class="col-md-3">
<div class="form-group">
<label>Date range</label>
<input type="text" id="dateFilter" class="form-control" autocomplete="off">

Check warning on line 167 in admin/audit_log.php

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Associate a valid label to this input field.

See more on https://sonarcloud.io/project/issues?id=itflow-org_itflow&issues=AZ8ePo99ACxDXHuRpJ1m&open=AZ8ePo99ACxDXHuRpJ1m&pullRequest=1289
<input type="hidden" name="canned_date" id="canned_date" value="<?php echo nullable_htmlentities($_GET['canned_date']) ?? ''; ?>">
<input type="hidden" name="dtf" id="dtf" value="<?php echo nullable_htmlentities($dtf ?? ''); ?>">
<input type="hidden" name="dtt" id="dtt" value="<?php echo nullable_htmlentities($dtt ?? ''); ?>">
Expand Down Expand Up @@ -254,15 +254,15 @@
?>

<tr>
<td><?php echo $log_created_at; ?></td>
<td class="text-monospace"><?php echo $log_created_at; ?></td>
<td><?php echo $user_name_display; ?></td>
<?php if(empty($client)) { ?>
<td><?php echo $client_name_display; ?></td>
<?php } ?>
<td><?php echo $log_type; ?></td>
<td><?php echo $log_action; ?></td>
<td><?php echo $log_description; ?></td>
<td><?php echo $log_ip; ?></td>
<td class="text-monospace"><?php echo $log_ip; ?></td>
<td><?php echo "$log_user_os<div class='text-secondary'>$log_user_browser</div>"; ?></td>
</tr>

Expand Down
6 changes: 3 additions & 3 deletions admin/mail_queue.php
Original file line number Diff line number Diff line change
Expand Up @@ -133,9 +133,9 @@
} elseif($email_status == 1) {
$email_status_display = "<div class='text-warning'>Sending</div>";
} elseif($email_status == 2) {
$email_status_display = "<div class='text-danger'>Failed</div><small class='text-secondary'>$email_failed_at</small>";
$email_status_display = "<div class='text-danger'>Failed</div><small class='text-secondary text-monospace'>$email_failed_at</small>";
} else {
$email_status_display = "<div class='text-success'>Sent</div><small class='text-secondary'>$email_sent_at</small>";
$email_status_display = "<div class='text-success'>Sent</div><small class='text-secondary text-monospace'>$email_sent_at</small>";
}

?>
Expand All @@ -148,7 +148,7 @@
</div>
<?php } ?>
</td>
<td><?php echo $email_queued_at; ?></td>
<td class="text-monospace"><?php echo $email_queued_at; ?></td>
<td><?php echo "$email_from<br><small class='text-secondary'>$email_from_name</small>"?></td>
<td><?php echo "$email_recipient<br><small class='text-secondary'>$email_recipient_name</small>"?></td>
<td><?php echo $email_subject; ?></td>
Expand Down
16 changes: 8 additions & 8 deletions admin/post/settings_mail.php
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@
}

if (isset($_POST['edit_mail_smtp_settings'])) {

validateCSRFToken($_POST['csrf_token']);

$config_smtp_provider = sanitizeInput($_POST['config_smtp_provider']);
Expand Down Expand Up @@ -110,15 +110,15 @@
");

logAction("Settings", "Edit", "$session_name edited SMTP settings");

flash_alert("SMTP Mail Settings updated");

redirect();

}

if (isset($_POST['edit_mail_imap_settings'])) {

validateCSRFToken($_POST['csrf_token']);

$config_imap_provider = sanitizeInput($_POST['config_imap_provider']);
Expand Down Expand Up @@ -152,9 +152,9 @@
");

logAction("Settings", "Edit", "$session_name edited IMAP settings");

flash_alert("IMAP Mail Settings updated");

redirect();

}
Expand Down Expand Up @@ -190,7 +190,7 @@
validateCSRFToken($_POST['csrf_token']);

$test_email = intval($_POST['test_email']);

if($test_email == 1) {
$email_from = sanitizeInput($config_mail_from_email);
$email_from_name = sanitizeInput($config_mail_from_name);
Expand Down Expand Up @@ -219,7 +219,7 @@
'body' => $body
]
];

$mail = addToMailQueue($data);

if ($mail === true) {
Expand Down
Loading
Loading