commit 179a8b2a8f123e0a0630624cf2f345f76853b289
parent df44790d7f7bbd4aa123efc8d2cac4308df1cf7a
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Thu, 25 May 2023 07:12:39 -0700
simplify code
Diffstat:
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, "/")
}
}