summaryrefslogtreecommitdiff
path: root/internal/server/api/api.go
diff options
context:
space:
mode:
authorKyren223 <Kyren223@proton.me>2025-01-25 17:21:04 +0200
committerKyren223 <Kyren223@proton.me>2025-01-25 17:21:04 +0200
commitacf87efce976744d61165e0b0174a1fadccfb779 (patch)
tree6ff2864f4550b6050ec816bc0b5568f3bf24cc82 /internal/server/api/api.go
parent5117d4ddda8c356203bfb05bb4fd242c8a803e51 (diff)
Added the ability to ban client-side from the memberslist
Diffstat (limited to 'internal/server/api/api.go')
-rw-r--r--internal/server/api/api.go8
1 files changed, 7 insertions, 1 deletions
diff --git a/internal/server/api/api.go b/internal/server/api/api.go
index 1c18ea9..007cce5 100644
--- a/internal/server/api/api.go
+++ b/internal/server/api/api.go
@@ -487,6 +487,12 @@ func DeleteNetwork(ctx context.Context, sess *session.Session, request *packet.D
}
func SetMember(ctx context.Context, sess *session.Session, request *packet.SetMember) packet.Payload {
+ if request.BanReason != nil && len(*request.BanReason) > packet.MaxBanReasonBytes {
+ return &packet.Error{Error: fmt.Sprintf(
+ "Ban reason may not exceed %v bytes", packet.MaxBanReasonBytes,
+ )}
+ }
+
queries := data.New(db)
network, err := queries.GetNetworkById(ctx, request.Network)
@@ -584,7 +590,7 @@ func SetMember(ctx context.Context, sess *session.Session, request *packet.SetMe
isMember = true
}
} else if request.Admin != nil {
- if isSessOwner && request.User != sess.ID() {
+ if isSessOwner && request.User != sess.ID() && isMember {
isAdmin = *request.Admin
}
} else if request.Muted != nil {