Gate the voicemail nav count on VIEW_VOICEMAIL

FixVOIPService
Shipped
August 26, 2026 at 4:48 AM UTC
Author
Kamo
Commit
dd556dd

**************** handed any authenticated member holding a MemberVoipConfig row the instance-wide unread-voicemail count with no rights check at all, even though VoipVoicemailController.list requires VIEW_VOICEMAIL to serve the very rows this number badges. A member who could never open that list could still be shown a nonzero count on the softphone nav icon and its dropdown, and the browser tab flashing about it — a number they could never clear. Adds a hasRight check that reads kamoSession the same way **************** does (GD bypass, then the rights list), so the two can never disagree about who holds VIEW_VOICEMAIL. An ungated caller gets 0, not a 403, following **************** shape: this is a poll every member's nav hits on every page load, before it knows whether the right applies to them. Missed calls are unchanged and stay ungated: a missed call on the caller's own PhoneCallLog row is their own data, and no right gates it elsewhere. Adds **************** covering the ungated-gets-zero- and-200 case, the held-right case, the GD bypass, and the pre-existing no-VOIP-config zero (unaffected by this change).

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing