From acf87efce976744d61165e0b0174a1fadccfb779 Mon Sep 17 00:00:00 2001 From: Kyren223 Date: Sat, 25 Jan 2025 17:21:04 +0200 Subject: Added the ability to ban client-side from the memberslist --- internal/server/api/api.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'internal/server') 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 { -- cgit v1.3.1