commit 209bceb18148b83298356ef3f41e4670eeb45d38
parent 4c99318fa3b1e589117fbd9fc29e2b4fd44759fb
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Fri, 29 Dec 2023 17:53:22 -0500
cleanup
Diffstat:
4 files changed, 20 insertions(+), 27 deletions(-)
diff --git a/pkg/web/handlers/interceptors/command/command.go b/pkg/web/handlers/interceptors/command/command.go
@@ -83,6 +83,21 @@ func (c *Command) RedirectURL() string {
return fmt.Sprintf("/api/v1/chat/top-bar/%s?%s", c.Room.Name, c.RedirectQP.Encode())
}
+func (c *Command) SetToUser(username database.Username) (err error) {
+ user, err := c.DB.GetUserByUsername(username)
+ if err != nil {
+ c.Err = errors.New("invalid username")
+ return c.Err
+ }
+
+ c.SkipInboxes, c.Err = dutils.CanUserPmOther(c.DB, *c.AuthUser, user, c.Room.IsOwned())
+ if c.Err != nil {
+ return c.Err
+ }
+ c.ToUser = &user
+ return nil
+}
+
// GetZeroUser lazy loading and cache of the zero user
func (c *Command) GetZeroUser() database.User {
if c.zeroUser == nil {
diff --git a/pkg/web/handlers/interceptors/msgInterceptor.go b/pkg/web/handlers/interceptors/msgInterceptor.go
@@ -118,16 +118,10 @@ func (i MsgInterceptor) InterceptMsg(cmd *command.Command) {
pmUsername := dutils.DoParseUsernamePtr(cmd.C.QueryParam(command.RedirectPmUsernameQP))
if pmUsername != nil {
- toUser, err := cmd.DB.GetUserByUsername(*pmUsername)
- if err != nil {
+ if err := cmd.SetToUser(*pmUsername); err != nil {
cmd.Err = command.ErrRedirect
return
}
- cmd.SkipInboxes, cmd.Err = dutils.CanUserPmOther(cmd.DB, *cmd.AuthUser, toUser, cmd.Room.IsOwned())
- if cmd.Err != nil {
- return
- }
- cmd.ToUser = &toUser
cmd.HellbanMsg = false
cmd.ModMsg = false
cmd.SystemMsg = false
diff --git a/pkg/web/handlers/interceptors/slashInterceptor.go b/pkg/web/handlers/interceptors/slashInterceptor.go
@@ -990,20 +990,11 @@ func handlePMCmd(c *command.Command) (handled bool) {
return handlePm0(c, newMsg)
}
- user, err := c.DB.GetUserByUsername(username)
- if err != nil {
- c.Err = errors.New("invalid username")
+ if err := c.SetToUser(username); err != nil {
return true
}
-
- c.SkipInboxes, c.Err = dutils.CanUserPmOther(c.DB, *c.AuthUser, user, c.Room.IsOwned())
- if c.Err != nil {
- return true
- }
-
- c.ToUser = &user
c.Message = newMsg
- c.RedirectQP.Set(command.RedirectPmQP, string(user.Username))
+ c.RedirectQP.Set(command.RedirectPmQP, string(c.ToUser.Username))
if newMsg == "/d" || strings.HasPrefix(newMsg, "/d ") {
handled = handleDeleteMsgCmd(c)
diff --git a/pkg/web/handlers/streamModals/codeModal.go b/pkg/web/handlers/streamModals/codeModal.go
@@ -3,7 +3,6 @@ package streamModals
import (
"bytes"
"dkforest/pkg/database"
- dutils "dkforest/pkg/database/utils"
"dkforest/pkg/utils"
"dkforest/pkg/web/handlers/interceptors/command"
"html/template"
@@ -154,17 +153,11 @@ func (_ CodeModal) InterceptMsg(cmd *command.Command) {
cmd.ModMsg = isMod
if pm != "" {
- toUser, err := cmd.DB.GetUserByUsername(database.Username(pm))
- if err != nil {
+ if err := cmd.SetToUser(database.Username(pm)); err != nil {
cmd.Err = command.ErrRedirect
return
}
- cmd.SkipInboxes, cmd.Err = dutils.CanUserPmOther(cmd.DB, *cmd.AuthUser, toUser, cmd.Room.IsOwned())
- if cmd.Err != nil {
- return
- }
- cmd.ToUser = &toUser
- cmd.RedirectQP.Set(command.RedirectPmQP, string(toUser.Username))
+ cmd.RedirectQP.Set(command.RedirectPmQP, string(cmd.ToUser.Username))
}
if cmd.OrigMessage == "" || btnCancel == "1" {