diff --git a/PluralKit.API/Controllers/v2/AutoproxyControllerV2.cs b/PluralKit.API/Controllers/v2/AutoproxyControllerV2.cs index 2f42b5f5..d7549046 100644 --- a/PluralKit.API/Controllers/v2/AutoproxyControllerV2.cs +++ b/PluralKit.API/Controllers/v2/AutoproxyControllerV2.cs @@ -74,27 +74,22 @@ public class AutoproxyControllerV2: PKControllerBase patch.Errors.Add(new("autoproxy_member", "Member not found.")); } - if (newAutoproxyMode.Value == AutoproxyMode.Member) - { - if (!updateMember) - { - patch.Errors.Add(new("autoproxy_member", "An autoproxy member must be supplied for autoproxy mode 'member'")); - } - - patch.AutoproxyMode = newAutoproxyMode; - patch.AutoproxyMember = newAutoproxyMember; - } - else + // only allow setting member for latch (or member) + if ((int)newAutoproxyMode.Value < 3) { if (updateMember) { - patch.Errors.Add(new("autoproxy_member", "Cannot update autoproxy member if autoproxy mode is not set to 'member'")); + patch.Errors.Add(new("autoproxy_member", "Cannot update autoproxy member if autoproxy is disabled or set to 'front' mode")); } - patch.AutoproxyMode = newAutoproxyMode; patch.AutoproxyMember = null; } + if (newAutoproxyMode.Value == AutoproxyMode.Member && newAutoproxyMember.Value == null) + { + patch.Errors.Add(new("autoproxy_member", "An autoproxy member must be supplied for autoproxy mode 'member'")); + } + if (patch.Errors.Count > 0) throw new ModelParseError(patch.Errors);