commit 5fdb5b6dbc5ff888256b69a41695ec055b3d4960
parent d4f4b9fc521f37265c8cd7e6851aa6a61b0566ba
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Wed, 7 Jun 2023 06:51:13 -0700
ensure PM rules
Diffstat:
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))