dkforest

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

commit 5fdb5b6dbc5ff888256b69a41695ec055b3d4960
parent d4f4b9fc521f37265c8cd7e6851aa6a61b0566ba
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Wed,  7 Jun 2023 06:51:13 -0700

ensure PM rules

Diffstat:
Mpkg/web/handlers/api/v1/codeModalInterceptor.go | 4++++
Mpkg/web/handlers/api/v1/slashInterceptor.go | 8++++----
2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/pkg/web/handlers/api/v1/codeModalInterceptor.go b/pkg/web/handlers/api/v1/codeModalInterceptor.go @@ -31,6 +31,10 @@ func (i CodeModalInterceptor) InterceptMsg(cmd *Command) { cmd.err = ErrRedirect return } + cmd.skipInboxes, cmd.err = canUserPmOther(cmd.db, *cmd.authUser, toUser, cmd.room.IsOwned()) + if cmd.err != nil { + return + } cmd.toUser = &toUser } diff --git a/pkg/web/handlers/api/v1/slashInterceptor.go b/pkg/web/handlers/api/v1/slashInterceptor.go @@ -884,6 +884,10 @@ func canUserInboxOther(db *database.DkfDB, user, other database.User) error { func canUserPmOther(db *database.DkfDB, user, other database.User, roomIsPrivate bool) (skipInbox bool, err error) { errPMDenied := ErrPMDenied + if user.ID == other.ID { + return false, errors.New("cannot /pm yourself") + } + if db.IsUserPmWhitelisted(user.ID, other.ID) { return false, nil } @@ -951,10 +955,6 @@ func handlePMCmd(c *Command) (handled bool) { return true } - if user.ID == c.authUser.ID { - c.err = errors.New("cannot /pm yourself") - return true - } c.toUser = &user c.message = newMsg c.redirectQP.Set(redirectPmQP, string(user.Username))