diff options
| author | Kyren223 <Kyren223@proton.me> | 2025-01-25 17:21:04 +0200 |
|---|---|---|
| committer | Kyren223 <Kyren223@proton.me> | 2025-01-25 17:21:04 +0200 |
| commit | acf87efce976744d61165e0b0174a1fadccfb779 (patch) | |
| tree | 6ff2864f4550b6050ec816bc0b5568f3bf24cc82 /internal/server | |
| parent | 5117d4ddda8c356203bfb05bb4fd242c8a803e51 (diff) | |
Added the ability to ban client-side from the memberslist
Diffstat (limited to 'internal/server')
| -rw-r--r-- | internal/server/api/api.go | 8 |
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 { |
