Skip to content

feat: add configurable ticket access, accounts and SLA targets - #92

Merged
mpge merged 1 commit into
mainfrom
feat/configurable-ticket-access
Oct 13, 2026
Merged

mpge merged 1 commit into
mainfrom
feat/configurable-ticket-access

Conversation

@mpge

@mpge mpge commented Oct 13, 2026

Copy link
Copy Markdown
Member

Agents can currently read and change tickets outside their departments through lists, reports, REST, widgets and direct child queries. Add opt-in department/account access across these paths, nullable ticket accounts resolved by the host, shared account/type routing conditions, and department/type SLA targets. All options default off; administrators retain access.

The shared WordPress query guard scopes reads and bulk mutations and validates child parents on writes. Validated tokens use their owner's access context, assignments and notification recipients are checked independently, and chat routing/acceptance reject ineligible agents before changing session state. Unsupported protected SQL fails closed; the documented trusted bypass restores nested contexts even on exceptions.

Account identities compare exactly, including case, leading zeroes and trailing spaces. Subject association fills only an empty account. Department changes preserve SLA clocks; deliberate policy reselection uses the original creation time. Settings and SLA forms expose the opt-in controls.

Schema upgrades preserve existing records, add nullable columns and an account index, install ticket links before API reads, and run on the configured package database. WordPress users remain on the host connection. The integration guide documents resolver hooks, SQL grammar, actorless jobs and rollout requirements.

Validation:

  • Full WordPress suite: 620 tests, 4 existing skips; no failures or errors.
  • 57 new regression cases. Recorded failing runs before implementation for 13 visibility/action paths, 5 account/routing/SLA cases and 2 chat assignment cases; all now pass.
  • Populated upgrade/idempotency and visibility tested with a custom prefix and a separate MySQL database. CI exercises both variants on PHP 8.1 and 8.2.
  • Full Laravel Pint check passes; git diff --check passes.
  • Corrected two existing test fixtures that reused unique department/skill names across repeated suite runs.

@mpge
mpge merged commit b59f166 into main Oct 13, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant