dkforest

A forum and chat platform (onion)
git clone https://git.dasho.dev/n0tr1v/dkforest.git
Log | Files | Refs | LICENSE

commit 38d1247c22ff44ee5c412ebcc40b503187972f9c
parent aeb317db41bfa0651340bff00dd277d6a111774e
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Mon,  6 Feb 2023 14:41:01 -0800

simply endpoints by using right group with middleware

Diffstat:
Mpkg/web/handlers/api/v1/handlers.go | 60+++++++++++++++++++++++++++---------------------------------
Mpkg/web/web.go | 6+++---
2 files changed, 30 insertions(+), 36 deletions(-)

diff --git a/pkg/web/handlers/api/v1/handlers.go b/pkg/web/handlers/api/v1/handlers.go @@ -269,18 +269,16 @@ func shouldPlaySound(authUser *database.User, lastKnownDate string, msgs []datab func UserHellbanHandler(c echo.Context) error { authUser := c.Get("authUser").(*database.User) - if authUser.IsModerator() { - userID := dutils.DoParseUserID(c.Param("userID")) - user, err := database.GetUserByID(userID) - if err != nil { - return c.Redirect(http.StatusFound, c.Request().Referer()) - } - if !user.IsHellbanned { - if authUser.IsAdmin || !user.IsModerator() { - database.NewAudit(*authUser, fmt.Sprintf("hellban %s #%d", user.Username, user.ID)) - user.HellBan() - managers.ActiveUsers.UpdateUserHBInRooms(managers.NewUserInfo(user, nil)) - } + userID := dutils.DoParseUserID(c.Param("userID")) + user, err := database.GetUserByID(userID) + if err != nil { + return c.Redirect(http.StatusFound, c.Request().Referer()) + } + if !user.IsHellbanned { + if authUser.IsAdmin || !user.IsModerator() { + database.NewAudit(*authUser, fmt.Sprintf("hellban %s #%d", user.Username, user.ID)) + user.HellBan() + managers.ActiveUsers.UpdateUserHBInRooms(managers.NewUserInfo(user, nil)) } } return c.Redirect(http.StatusFound, c.Request().Referer()) @@ -288,34 +286,30 @@ func UserHellbanHandler(c echo.Context) error { func UserUnHellbanHandler(c echo.Context) error { authUser := c.Get("authUser").(*database.User) - if authUser.IsModerator() { - userID := dutils.DoParseUserID(c.Param("userID")) - user, err := database.GetUserByID(userID) - if err != nil { - return c.Redirect(http.StatusFound, c.Request().Referer()) - } - if user.IsHellbanned { - database.NewAudit(*authUser, fmt.Sprintf("unhellban %s #%d", user.Username, user.ID)) - user.UnHellBan() - managers.ActiveUsers.UpdateUserHBInRooms(managers.NewUserInfo(user, nil)) - } + userID := dutils.DoParseUserID(c.Param("userID")) + user, err := database.GetUserByID(userID) + if err != nil { + return c.Redirect(http.StatusFound, c.Request().Referer()) + } + if user.IsHellbanned { + database.NewAudit(*authUser, fmt.Sprintf("unhellban %s #%d", user.Username, user.ID)) + user.UnHellBan() + managers.ActiveUsers.UpdateUserHBInRooms(managers.NewUserInfo(user, nil)) } return c.Redirect(http.StatusFound, c.Request().Referer()) } func KickHandler(c echo.Context) error { authUser := c.Get("authUser").(*database.User) - if authUser.IsModerator() { - userID := dutils.DoParseUserID(c.Param("userID")) - user, err := database.GetUserByID(userID) - if err != nil { - return c.Redirect(http.StatusFound, c.Request().Referer()) - } - if user.IsModerator() { - return c.Redirect(http.StatusFound, c.Request().Referer()) - } - _ = dutils.SilentKick(user, *authUser) + userID := dutils.DoParseUserID(c.Param("userID")) + user, err := database.GetUserByID(userID) + if err != nil { + return c.Redirect(http.StatusFound, c.Request().Referer()) + } + if user.IsModerator() { + return c.Redirect(http.StatusFound, c.Request().Referer()) } + _ = dutils.SilentKick(user, *authUser) return c.Redirect(http.StatusFound, c.Request().Referer()) } diff --git a/pkg/web/web.go b/pkg/web/web.go @@ -147,9 +147,6 @@ func getMainServer(i18nBundle *i18n.Bundle, renderer *tmp.Templates) echo.Handle authGroup.POST("/api/v1/inbox/delete-all", v1.ChatInboxDeleteAllMessageHandler) authGroup.POST("/api/v1/chat/messages/delete/:messageUUID", v1.ChatDeleteMessageHandler) authGroup.POST("/api/v1/chat/messages/reactions", v1.ChatMessageReactionHandler) - authGroup.POST("/api/v1/users/:userID/hellban", v1.UserHellbanHandler) - authGroup.POST("/api/v1/users/:userID/unhellban", v1.UserUnHellbanHandler) - authGroup.POST("/api/v1/users/:userID/kick", v1.KickHandler) authGroup.POST("/api/v1/rooms/:roomName/subscribe", v1.SubscribeHandler) authGroup.POST("/api/v1/rooms/:roomName/unsubscribe", v1.UnsubscribeHandler) authGroup.POST("/api/v1/threads/:threadUUID/subscribe", v1.ThreadSubscribeHandler) @@ -217,6 +214,9 @@ func getMainServer(i18nBundle *i18n.Bundle, renderer *tmp.Templates) echo.Handle authGroup.GET("/chat/:roomName/settings", handlers.RoomChatSettingsHandler) authGroup.POST("/chat/:roomName/settings", handlers.RoomChatSettingsHandler) moderatorGroup := e.Group("", middlewares.IsModeratorMiddleware) + moderatorGroup.POST("/api/v1/users/:userID/hellban", v1.UserHellbanHandler) + moderatorGroup.POST("/api/v1/users/:userID/unhellban", v1.UserUnHellbanHandler) + moderatorGroup.POST("/api/v1/users/:userID/kick", v1.KickHandler) moderatorGroup.POST("/links/reindex", handlers.LinksReindexHandler) moderatorGroup.GET("/forum/reindex", handlers.ForumReindexHandler) moderatorGroup.GET("/settings/website", handlers.SettingsWebsiteHandler)