Problem/Motivation

Customers need one access-controlled page that explains their reservation, appointment timezone, payment state, and available actions. Meeting links should be accessible after provider synchronization.

Proposed resolution

Add a reservation summary with rescheduling and cancellation actions, Google Meet or Microsoft Teams join links when supplied by the provider, a meeting URL email token, and a private iCalendar download. Do not expose another customer's reservation or management credentials in the calendar file.

Remaining tasks

Implement for the next minor release, add automated coverage, and verify the workflow on a local Drupal site.

Test coverage

Cover customer and anonymous management-link access, unrelated-user denial, provider response parsing, missing and delayed meeting links, iCalendar escaping and line folding, timezone display, and payment states.

Comments

josh.fabean created an issue. See original summary.

josh.fabean’s picture

Version: 3.1.x-dev » 3.2.x-dev
Status: Active » Fixed

Implemented and pushed to 3.2.x; available in 3.2.x-dev.

  • 45f1565c: Private reservation summary, provider meeting links, meeting URL token, and access-controlled ICS download.
  • 68125218: Commerce payment information on the reservation summary.
  • a9b5b910: Hide unavailable customer rescheduling actions.
  • 69e8fb20: Shared workflow infrastructure and upgrade defaults.
  • b5fec2a6: Automated regression coverage and documentation.

Verification: full module suite passes with 91 tests and 1,984 assertions. Coverage includes private-link access, unrelated-user denial, provider response parsing, meeting URL persistence, ICS output, timezones, and payment details. Drupal coding standards and static analysis pass. Run database updates and rebuild caches after updating.

Adding explicit links to the implementation commits and marking fixed.

Now that this issue is closed, review the contribution record.

As a contributor, attribute any organization that helped you, or if you volunteered your own time.

Maintainers, credit people who helped resolve this issue.