Let a member give up their own membership

FeatureSecurityService
Shipped
August 19, 2026 at 6:20 AM UTC
Author
Kamo
Commit
ff37008

The network page has offered "Unsubscribe" since it was written. It opened a confirmation dialog and then said the feature would be implemented soon, because there was no endpoint behind it — a member invited into an organization had no way out that did not go through an administrator. POST /api/security/org/{id}/leave acts only on the caller's own Member row, so it takes no right of its own: nobody can call it to remove anybody else. It deactivates rather than deletes. recordState.isActive is the soft-delete flag, so the row survives for audit and can be restored, and the employment lifecycle on TeamMember.teamMembershipStatus is a different axis that this deliberately leaves alone. Every live-session, roster and notification path already gates on **************** whose base term is that same flag, so clearing it ends chat presence, mentionability and assignment eligibility without further work. Sessions already open against the membership are revoked the way off-boarding does it, so access ends now rather than at the sliding TTL. Three memberships may not be given up, each refusing a different kind of damage: the organization serving the request (leaving it strands that request's own session), the caller's original organization (where the user account is anchored, with no re-invite path back), and one the caller owns (which would leave it with nobody able to administer it).

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