dkforest

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

commit 209bceb18148b83298356ef3f41e4670eeb45d38
parent 4c99318fa3b1e589117fbd9fc29e2b4fd44759fb
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Fri, 29 Dec 2023 17:53:22 -0500

cleanup

Diffstat:
Mpkg/web/handlers/interceptors/command/command.go | 15+++++++++++++++
Mpkg/web/handlers/interceptors/msgInterceptor.go | 8+-------
Mpkg/web/handlers/interceptors/slashInterceptor.go | 13++-----------
Mpkg/web/handlers/streamModals/codeModal.go | 11++---------
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" {