dkforest

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

commit 179a8b2a8f123e0a0630624cf2f345f76853b289
parent df44790d7f7bbd4aa123efc8d2cac4308df1cf7a
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Thu, 25 May 2023 07:12:39 -0700

simplify code

Diffstat:
Mpkg/web/handlers/handlers.go | 27+++++++++++++++++----------
1 file changed, 17 insertions(+), 10 deletions(-)

diff --git a/pkg/web/handlers/handlers.go b/pkg/web/handlers/handlers.go @@ -5018,6 +5018,17 @@ func applyUserFilters(db *database.DkfDB, authUser *database.User, msg *database return true } +func getRoomKey(c echo.Context, room database.ChatRoom) (string, error) { + if room.IsProtected() { + key, err := hutils.GetRoomKeyCookie(c, int64(room.ID)) + if err != nil { + return "", err + } + return key.Value, nil + } + return "", nil +} + func ChatStreamMessagesHandler(c echo.Context) error { db := c.Get("database").(*database.DkfDB) authUser := c.Get("authUser").(*database.User) @@ -5027,6 +5038,10 @@ func ChatStreamMessagesHandler(c echo.Context) error { if err != nil { return c.Redirect(http.StatusFound, "/") } + roomKey, err := getRoomKey(c, room) + if err != nil { + return c.Redirect(http.StatusFound, "/") + } quit := closeSignalChan(c) @@ -5062,11 +5077,7 @@ func ChatStreamMessagesHandler(c echo.Context) error { displayIgnoredMessages := false msgs, _ := db.GetChatMessages(room.ID, authUser.Username, authUser.ID, pmOnlyQuery, mentionsOnlyQuery, displayHellbanned, authUser.DisplayIgnored, authUser.DisplayModerators, displayIgnoredMessages) if room.IsProtected() { - key, err := hutils.GetRoomKeyCookie(c, int64(room.ID)) - if err != nil { - return c.Redirect(http.StatusFound, "/") - } - if err := msgs.DecryptAll(key.Value); err != nil { + if err := msgs.DecryptAll(roomKey); err != nil { return c.Redirect(http.StatusFound, "/") } } @@ -5136,11 +5147,7 @@ Loop: msg := msgTyp.Msg if room.IsProtected() { - key, err := hutils.GetRoomKeyCookie(c, int64(room.ID)) - if err != nil { - return c.Redirect(http.StatusFound, "/") - } - if err := msg.Decrypt(key.Value); err != nil { + if err := msg.Decrypt(roomKey); err != nil { return c.Redirect(http.StatusFound, "/") } }