
Give people control over their own account
People can read their own account and choose to deactivate it through a dedicated self-service surface. Wildo keeps these actions separate from the administrative operations that manage other users.
Deactivation stops access. Returning from that state requires administrative reactivation; it is not an automatic pause-and-return flow.
Example — Leave an account deliberately
A person deactivates their account with an optional reason. The application preserves the distinction between their decision to leave and an administrator’s suspension.
For engineers
Use the self-service resource for the current person
userSelf provides own-account reads and lifecycle actions over the user records. It does not expose arbitrary user-row updates. Profile and preference changes belong to their dedicated self-service resources.
The deactivation operation’s current request and availability condition are:
requestDto: z.object({
reason: z.string().max(500).optional(),
}),
enabledCondition: ({ currentObject }) => {
return currentObject.status === UserStatus.ACTIVE;
}
The shared transition moves ACTIVE to INACTIVE. The administrative continuity floor still applies, so the last usable administrator cannot bypass that protection by choosing the self-service route.
Explain the return path before deactivation
Normal authentication admits active accounts. Once deactivated, a person cannot simply sign back in to invoke self-reactivation. The administrative reactivate_user operation restores INACTIVE accounts with a documented reason. An imposed SUSPENDED account uses the distinct unsuspend operation.
Keep data-rights actions explicit
Account deactivation is not data erasure. This resource does not provide a self-delete or subject-export endpoint. Applications that offer those journeys need to connect their authorized data-rights process to the relevant services rather than relabel deactivation as deletion. This distinction preserves the user’s expectation and the lifecycle behavior behind the control.