Hotfix Run Checks mail visibility and Autotask cross-company linking

This commit is contained in:
Ivo Oskamp 2026-03-26 11:29:44 +01:00
parent adcda8b778
commit 3dae203cf6
5 changed files with 32 additions and 4 deletions

View File

@ -3,6 +3,21 @@ Changelog data structure for Backupchecks
""" """
CHANGELOG = [ CHANGELOG = [
{
"version": "v0.2.4",
"date": "2026-03-26",
"summary": "Hotfix release that restores support for linking existing umbrella/shared Autotask tickets across companies from Run Checks.",
"sections": [
{
"title": "Fixed",
"type": "bugfix",
"changes": [
"Run Checks Link existing Autotask ticket no longer blocks cross-company tickets when the selected ticket company differs from the mapped customer company",
"Umbrella/shared Autotask tickets can be linked again while existing safeguards remain: ticket must exist, include a ticket number, and not be terminal/completed"
]
}
]
},
{ {
"version": "v0.2.3", "version": "v0.2.3",
"date": "2026-03-23", "date": "2026-03-23",

View File

@ -2240,15 +2240,13 @@ def api_run_checks_autotask_link_existing_ticket():
if not isinstance(t, dict): if not isinstance(t, dict):
return jsonify({"status": "error", "message": "Autotask did not return a ticket object."}), 400 return jsonify({"status": "error", "message": "Autotask did not return a ticket object."}), 400
# Enforce company scope. # Allow cross-company linking for shared/umbrella Autotask tickets.
# Keep parsed company id for diagnostics/audit context, but do not block on mismatch.
try: try:
t_company = int(t.get("companyID") or 0) t_company = int(t.get("companyID") or 0)
except Exception: except Exception:
t_company = 0 t_company = 0
if t_company != int(customer.autotask_company_id):
return jsonify({"status": "error", "message": "Selected ticket does not belong to the mapped Autotask company."}), 400
tnum = (t.get("ticketNumber") or t.get("number") or "") tnum = (t.get("ticketNumber") or t.get("number") or "")
tnum = str(tnum or "").strip() tnum = str(tnum or "").strip()
if not tnum: if not tnum:

View File

@ -1513,6 +1513,7 @@ table.addEventListener('change', function (e) {
if (mailPanel) mailPanel.style.display = ''; if (mailPanel) mailPanel.style.display = '';
if (bodyFrame) bodyFrame.srcdoc = wrapMailHtml(run.body_html || ''); if (bodyFrame) bodyFrame.srcdoc = wrapMailHtml(run.body_html || '');
} else { } else {
if (modalEl) modalEl.classList.remove('is-cove');
if (covePanel) covePanel.style.display = 'none'; if (covePanel) covePanel.style.display = 'none';
if (ccPanel) ccPanel.style.display = 'none'; if (ccPanel) ccPanel.style.display = 'none';
if (mailHeading) { mailHeading.style.display = ''; mailHeading.textContent = 'Mail'; } if (mailHeading) { mailHeading.style.display = ''; mailHeading.textContent = 'Mail'; }

View File

@ -2,6 +2,14 @@
This file documents all changes made to this project via Claude Code. This file documents all changes made to this project via Claude Code.
## [2026-03-26]
### Fixed
- Run Checks modal mail visibility hotfix: normal mail runs now explicitly clear the `is-cove` modal class before rendering mail content, preventing intermittent hidden mail after navigating from a Cove run; Cove behavior itself remains unchanged.
- Run Checks Autotask "Link existing ticket" now allows linking cross-company tickets (for shared/umbrella tickets that apply to multiple customers):
- Removed the hard company mismatch block in `POST /api/run-checks/autotask-link-existing-ticket` (`containers/backupchecks/src/backend/app/main/routes_run_checks.py`).
- Tickets are still validated for existence, ticket number presence, and non-terminal status before linking.
## [2026-03-23] ## [2026-03-23]
### Fixed ### Fixed

View File

@ -1,3 +1,9 @@
## v0.2.4
### Fixed
- **Autotask: link existing ticket cross-company hotfix** — removed the hard company mismatch block in the Run Checks endpoint that links existing Autotask tickets, so umbrella/shared tickets can be linked even when the ticket company differs from the mapped customer company.
- Existing safeguards remain active: ticket must exist, must have a ticket number, and may not be in a terminal/completed status.
## v0.2.3 ## v0.2.3
### Added ### Added