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:
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)