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