From 7c39ef2e3dc29f20de9ce0eb221659e3335d9973 Mon Sep 17 00:00:00 2001 From: pancakes Date: Sun, 23 Mar 2025 12:23:35 +1000 Subject: [PATCH] [backend/api] Add ManuallyAcceptFollows to settings endpoints --- .../Controllers/Web/SettingsController.cs | 11 ++++++++++- Iceshrimp.Shared/Schemas/Web/UserSettingsEntity.cs | 1 + 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/Iceshrimp.Backend/Controllers/Web/SettingsController.cs b/Iceshrimp.Backend/Controllers/Web/SettingsController.cs index afb4d143..e199a9b2 100644 --- a/Iceshrimp.Backend/Controllers/Web/SettingsController.cs +++ b/Iceshrimp.Backend/Controllers/Web/SettingsController.cs @@ -37,6 +37,10 @@ public class SettingsController( public async Task GetSettings() { var settings = await GetOrInitUserSettings(); + + var user = HttpContext.GetUserOrFail(); + var isLocked = await db.Users.Where(p => p.Id == user.Id).Select(p => p.IsLocked).FirstAsync(); + return new UserSettingsResponse { FilterInaccessible = settings.FilterInaccessible, @@ -45,7 +49,8 @@ public class SettingsController( AutoAcceptFollowed = settings.AutoAcceptFollowed, DefaultNoteVisibility = (NoteVisibility)settings.DefaultNoteVisibility, DefaultRenoteVisibility = (NoteVisibility)settings.DefaultNoteVisibility, - TwoFactorEnrolled = settings.TwoFactorEnabled + TwoFactorEnrolled = settings.TwoFactorEnabled, + ManuallyAcceptFollows = isLocked }; } @@ -66,6 +71,10 @@ public class SettingsController( settings.DefaultNoteVisibility = (Note.NoteVisibility)newSettings.DefaultNoteVisibility; settings.DefaultRenoteVisibility = (Note.NoteVisibility)newSettings.DefaultRenoteVisibility; + var user = HttpContext.GetUserOrFail(); + var dbUser = await db.Users.FirstAsync(p => p.Id == user.Id); + dbUser.IsLocked = newSettings.ManuallyAcceptFollows; + await db.SaveChangesAsync(); } diff --git a/Iceshrimp.Shared/Schemas/Web/UserSettingsEntity.cs b/Iceshrimp.Shared/Schemas/Web/UserSettingsEntity.cs index 65fd7bbb..37fb6bc6 100644 --- a/Iceshrimp.Shared/Schemas/Web/UserSettingsEntity.cs +++ b/Iceshrimp.Shared/Schemas/Web/UserSettingsEntity.cs @@ -13,4 +13,5 @@ public class UserSettingsRequest public bool FilterInaccessible { get; set; } public bool AutoAcceptFollowed { get; set; } public bool AlwaysMarkSensitive { get; set; } + public bool ManuallyAcceptFollows { get; set; } } \ No newline at end of file