app.tempomusic.staff.unsuspendAccount
Lift an account suspension: deletes the current state row (history stays in the audit log) and instantly readmits the account's content on the public surface. Also accepts a LAPSED suspension (removes the stale row). Cannot lift a ban. Requires the `moderator` role. Writes an `accountUnsuspended` audit row.
Details · procedure
| Kind | procedure |
|---|---|
| Authority | staff.tempomusic.app |
| Indexed |
Procedure
procedure · POSTOutput
application/jsonminimum: 1
Errors
Forbidden
The caller is not an active moderator.
AccountNotSuspended
No suspension exists for this account.
AccountBanned
The account is banned — a ban cannot be lifted.
Similar lexicons
semantic matchLexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.
-
app.tempomusic.staff.suspendAccount
procedureSuspend an account: all of its content disappears from the public read surface (feeds, single fetches, threads, notifications) while the row is active. Reversible via unsuspendAccount; optionally time-boxed via `until` (evaluated at read time — a lapsed suspension readmits content with no further action). Re-suspending replaces the current suspension (new reason/expiry, new audit row). Requires the `moderator` role. Writes an `accountSuspended` audit row.
-
app.tempomusic.staff.restoreSubject
procedureFlip `moderation_status` back to 0 on a previously taken-down subject row. Writes a `subjectRestore` audit row. Trivially symmetric with takedownSubject — both act on the subject row only; lifting an account-wide sanction is unsuspendAccount's job (bans are permanent). Requires the caller to be an active moderator.
-
app.tempomusic.staff.banAccount
procedurePermanently ban an account: all of its content disappears from the public read surface and no surface can lift the state. Escalating an active suspension replaces it. Requires the `superAdmin` role. Writes an `accountBanned` audit row. Federation caveat: the ban blocks this DID — re-registration under a fresh DID is structurally possible in AT Protocol.
-
Current account-level moderation state of a DID (suspension or ban), or an empty object when the account is unrestricted. A lapsed suspension is reported with its (past) `until` — interpretation is the caller's. Requires the `moderator` role.
-
app.tempomusic.staff.revokeStaffRole
procedureMark a moderator row as revoked. The DID can no longer pass the moderator gate (latency = the moderator-cache TTL, default 30s). Requires the caller to have the `superAdmin` role. A super-admin cannot revoke themselves. Writes a `moderatorRevoked` audit row only when an active row was actually revoked. Idempotent: revoking a DID that is not currently an active moderator returns 200 with `revoked: false` and no audit row.