feat(phase2): bulk delete + audit log; update roadmap/parity docs
This commit is contained in:
+33
-5
@@ -9,6 +9,7 @@ import (
|
||||
"strings"
|
||||
|
||||
_ "git.dustin.coffee/hobokenchicken/dumpsterChat/docs"
|
||||
"git.dustin.coffee/hobokenchicken/dumpsterChat/internal/audit"
|
||||
"git.dustin.coffee/hobokenchicken/dumpsterChat/internal/auth"
|
||||
"git.dustin.coffee/hobokenchicken/dumpsterChat/internal/bot"
|
||||
"git.dustin.coffee/hobokenchicken/dumpsterChat/internal/channel"
|
||||
@@ -142,22 +143,49 @@ func main() {
|
||||
r.Get("/", serverHandler.List)
|
||||
|
||||
modHandler := moderation.NewHandler(database.DB, hub)
|
||||
auditLogger := audit.NewLogger(database.DB)
|
||||
auditHandler := audit.NewHandler(database.DB)
|
||||
|
||||
r.Route("/{serverID}", func(r chi.Router) {
|
||||
r.Get("/", serverHandler.Get)
|
||||
r.Patch("/", serverHandler.Update)
|
||||
r.Delete("/", serverHandler.Delete)
|
||||
|
||||
// Audit log
|
||||
r.With(middleware.RequirePermission(permissionsChecker, permissions.MANAGE_SERVER)).Get("/audit-log", auditHandler.List)
|
||||
|
||||
// Server members
|
||||
memberHandler.RegisterRoutes(r)
|
||||
|
||||
// Moderation
|
||||
r.With(middleware.RequirePermission(permissionsChecker, permissions.KICK_MEMBERS)).Delete("/members/{userID}", modHandler.Kick)
|
||||
r.With(middleware.RequirePermission(permissionsChecker, permissions.BAN_MEMBERS)).Post("/bans", modHandler.Ban)
|
||||
r.With(middleware.RequirePermission(permissionsChecker, permissions.KICK_MEMBERS)).Delete("/members/{userID}", func(w http.ResponseWriter, r *http.Request) {
|
||||
modHandler.Kick(w, r)
|
||||
serverID := chi.URLParam(r, "serverID")
|
||||
targetID := chi.URLParam(r, "userID")
|
||||
userID, _ := middleware.UserIDFromContext(r.Context())
|
||||
_ = auditLogger.Log(r.Context(), serverID, userID, audit.ActionKick, "user", targetID, "", nil)
|
||||
})
|
||||
r.With(middleware.RequirePermission(permissionsChecker, permissions.BAN_MEMBERS)).Post("/bans", func(w http.ResponseWriter, r *http.Request) {
|
||||
modHandler.Ban(w, r)
|
||||
})
|
||||
r.With(middleware.RequirePermission(permissionsChecker, permissions.BAN_MEMBERS)).Get("/bans", modHandler.ListBans)
|
||||
r.With(middleware.RequirePermission(permissionsChecker, permissions.BAN_MEMBERS)).Delete("/bans/{userID}", modHandler.Unban)
|
||||
r.With(middleware.RequirePermission(permissionsChecker, permissions.MUTE_MEMBERS)).Post("/mutes", modHandler.Mute)
|
||||
r.With(middleware.RequirePermission(permissionsChecker, permissions.MUTE_MEMBERS)).Delete("/mutes/{userID}", modHandler.Unmute)
|
||||
r.With(middleware.RequirePermission(permissionsChecker, permissions.BAN_MEMBERS)).Delete("/bans/{userID}", func(w http.ResponseWriter, r *http.Request) {
|
||||
modHandler.Unban(w, r)
|
||||
serverID := chi.URLParam(r, "serverID")
|
||||
targetID := chi.URLParam(r, "userID")
|
||||
userID, _ := middleware.UserIDFromContext(r.Context())
|
||||
_ = auditLogger.Log(r.Context(), serverID, userID, audit.ActionUnban, "user", targetID, "", nil)
|
||||
})
|
||||
r.With(middleware.RequirePermission(permissionsChecker, permissions.MUTE_MEMBERS)).Post("/mutes", func(w http.ResponseWriter, r *http.Request) {
|
||||
modHandler.Mute(w, r)
|
||||
})
|
||||
r.With(middleware.RequirePermission(permissionsChecker, permissions.MUTE_MEMBERS)).Delete("/mutes/{userID}", func(w http.ResponseWriter, r *http.Request) {
|
||||
modHandler.Unmute(w, r)
|
||||
serverID := chi.URLParam(r, "serverID")
|
||||
targetID := chi.URLParam(r, "userID")
|
||||
userID, _ := middleware.UserIDFromContext(r.Context())
|
||||
_ = auditLogger.Log(r.Context(), serverID, userID, audit.ActionUnmute, "user", targetID, "", nil)
|
||||
})
|
||||
|
||||
// Channels (nested under servers)
|
||||
r.Route("/channels", func(r chi.Router) {
|
||||
|
||||
Reference in New Issue
Block a user