com.getorbyt.community.manageMember
Mute, ban, or re-role a member. Only an administrator may set a role; a moderator may mute and ban, but never a peer or an administrator. Administration is service state and may be granted to an account that does not hold the declaration record; authority over the record itself is never transferable and always belongs to the repository that holds it.
Details · procedure
| Kind | procedure |
|---|---|
| Authority | community.getorbyt.com |
| Indexed |
Checks
Validunlimited-stringdefs.main.input.schema.properties.actionNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.main.input.schema.properties.roleNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.main.output.schema.properties.statusNo maxLength, maxGraphemes or format limits this string.
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"main": {
"description": "Mute, ban, or re-role a member. Only an administrator may set a role; a moderator may mute and ban, but never a peer or an administrator. Administration is service state and may be granted to an account that does not hold the declaration record; authority over the record itself is never transferable and always belongs to the repository that holds it.",
"errors": [
{
"name": "CommunityNotFound"
},
{
"name": "InsufficientRole"
},
{
"name": "InvalidAction"
},
{
"description": "roleKey names no role the Community defined.",
"name": "RoleNotFound"
},
{
"description": "The request carried no service-auth token, or one this service could not verify for the method. Distinct from InsufficientRole: the caller's identity was never established, so no role decision was made. A client should reauthorize and retry once rather than tell the viewer they lack access.",
"name": "AuthenticationRequired"
}
],
"input": {
"encoding": "application/json",
"schema": {
"properties": {
"action": {
"knownValues": [
"setRole",
"mute",
"unmute",
"ban",
"unban"
],
"type": "string"
},
"community": {
"format": "at-uri",
"type": "string"
},
"did": {
"format": "did",
"type": "string"
},
"durationDays": {
"description": "For mute and ban: how many days it lasts. Absent means until a moderator lifts it.",
"maximum": 999,
"minimum": 1,
"type": "integer"
},
"message": {
"description": "For mute and ban: what the member is told.",
"maxLength": 2000,
"type": "string"
},
"role": {
"description": "The role to set. Granting owner grants administration — moderation and role assignment — to another account; it does not move the declaration record, which stays in the repository that holds it, and the holder's own administration can never be revoked.",
"knownValues": [
"owner",
"moderator",
"member"
],
"type": "string"
},
"roleKey": {
"description": "With role moderator, the Community-defined role to give. Absent gives the built-in moderator role. Someone who is not an administrator may only give a role whose permissions they hold themselves, and never owner.",
"maxLength": 64,
"type": "string"
}
},
"required": [
"community",
"did",
"action"
],
"type": "object"
}
},
"output": {
"encoding": "application/json",
"schema": {
"properties": {
"restrictedUntil": {
"description": "When a timed mute or ban ends.",
"format": "datetime",
"type": "string"
},
"status": {
"knownValues": [
"none",
"active",
"muted",
"banned"
],
"type": "string"
}
},
"required": [
"status"
],
"type": "object"
}
},
"type": "procedure"
}
},
"id": "com.getorbyt.community.manageMember",
"lexicon": 1
}