R6 moderation in decePub: users and personas, accounts, report actions, deletions, suspended personas

Administration's Users & personas (administrators): logins searched and opened into their personas and groups; roles,
bans, two-factor reset and deletion of a login; silence, suspension and deletion of a persona; a group deleted. Accounts
(moderators): local personas and remote accounts searched or listed as moderated, silenced and suspended with a staff
note and a warning. Reports resolve with an action. ActDialog asks for the note, the warning or the password and is the
act's confirmation. A login deletes its own persona and the groups it owns with its password. Suspended personas can't
be chosen; one refused a token mid-session moves the session to another, or to none, once. Warnings show in
notifications, limited accounts on their profile, and moderators remove a post from its card.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WpVCoDeM1qUTRp4fXQdfof
This commit is contained in:
thepraandClaude Opus 5.5 committed 2026-10-17 05:41:10 +02:00
1 parent 4c88980374
commit c572471b88
30 files changed
+2604 -67

No files matched your search

+16
View File
@@ -35,6 +35,7 @@ public static class APIs
public const string POST_DeleteAccount = "clientapi/user/delete";
public const string GET_Personas = "clientapi/avatar/private/list";
public const string POST_InsertPersona = "clientapi/avatar/private/insert";
public const string POST_DeletePersona = "clientapi/avatar/private/delete";
public const string GET_Groups = "clientapi/group/list";
public const string GET_GroupMembers = "clientapi/group/members";
public const string POST_InsertGroup = "clientapi/group/insert";
@@ -44,6 +45,7 @@ public static class APIs
public const string POST_ApproveGroupMember = "clientapi/group/approve";
public const string POST_RejectGroupMember = "clientapi/group/reject";
public const string POST_RemoveGroupMember = "clientapi/group/remove";
public const string POST_DeleteGroup = "clientapi/group/delete";
public const string GET_Posts = "clientapi/post/list";
public const string GET_Nearby = "clientapi/post/nearby";
public const string POST_InsertPost = "clientapi/post/insert";
@@ -51,6 +53,20 @@ public static class APIs
public const string GET_ModeratorReports = "clientapi/moderator/reports";
public static string POST_M_ResolveReport(string reportId) => $"clientapi/moderator/reports/{Uri.EscapeDataString(reportId)}/resolve";
public const string GET_ModeratorLog = "clientapi/moderator/log";
public const string GET_ModeratorAccounts = "clientapi/moderator/accounts";
public const string GET_ModeratedAccounts = "clientapi/moderator/accounts/moderated";
public static string GET_M_ModeratorAccount(string accountId) => $"clientapi/moderator/accounts/{Uri.EscapeDataString(accountId)}";
public const string POST_ModerateAccount = "clientapi/moderator/accounts/moderate";
public const string POST_ModeratorRemovePost = "clientapi/moderator/posts/remove";
public const string GET_AdminRoots = "clientapi/admin/roots";
public static string GET_M_AdminRoot(string rootId) => $"clientapi/admin/roots/{Uri.EscapeDataString(rootId)}";
public static string POST_M_AdminRootRole(string rootId) => $"clientapi/admin/roots/{Uri.EscapeDataString(rootId)}/role";
public static string POST_M_AdminRootTotpReset(string rootId) => $"clientapi/admin/roots/{Uri.EscapeDataString(rootId)}/totp/reset";
public static string POST_M_AdminPersonaDelete(string personaId) => $"clientapi/admin/personas/{Uri.EscapeDataString(personaId)}/delete";
public static string POST_M_AdminGroupDelete(string groupId) => $"clientapi/admin/groups/{Uri.EscapeDataString(groupId)}/delete";
public const string POST_AdminBanRoots = "clientapi/admin/ban/users";
public const string POST_AdminUnbanRoots = "clientapi/admin/unban/users";
public const string DELETE_AdminRemoveRoots = "clientapi/admin/remove/users";
public const string GET_AdminSettings = "clientapi/admin/settings";
public const string POST_AdminSettings = "clientapi/admin/settings";
public const string POST_AdminThumbnail = "clientapi/admin/settings/thumbnail";