[backend/api] Improve IsLocked queries

This commit is contained in:
pancakes 2025-03-23 21:34:08 +10:00
parent 7f6791506d
commit 5cdb21a47f
No known key found for this signature in database

View file

@ -37,10 +37,8 @@ public class SettingsController(
public async Task<UserSettingsResponse> GetSettings() public async Task<UserSettingsResponse> GetSettings()
{ {
var settings = await GetOrInitUserSettings(); var settings = await GetOrInitUserSettings();
var user = HttpContext.GetUserOrFail(); var user = HttpContext.GetUserOrFail();
var isLocked = await db.Users.Where(p => p.Id == user.Id).Select(p => p.IsLocked).FirstAsync();
return new UserSettingsResponse return new UserSettingsResponse
{ {
FilterInaccessible = settings.FilterInaccessible, FilterInaccessible = settings.FilterInaccessible,
@ -50,7 +48,7 @@ public class SettingsController(
DefaultNoteVisibility = (NoteVisibility)settings.DefaultNoteVisibility, DefaultNoteVisibility = (NoteVisibility)settings.DefaultNoteVisibility,
DefaultRenoteVisibility = (NoteVisibility)settings.DefaultNoteVisibility, DefaultRenoteVisibility = (NoteVisibility)settings.DefaultNoteVisibility,
TwoFactorEnrolled = settings.TwoFactorEnabled, TwoFactorEnrolled = settings.TwoFactorEnabled,
ManuallyAcceptFollows = isLocked ManuallyAcceptFollows = user.IsLocked
}; };
} }
@ -71,9 +69,10 @@ public class SettingsController(
settings.DefaultNoteVisibility = (Note.NoteVisibility)newSettings.DefaultNoteVisibility; settings.DefaultNoteVisibility = (Note.NoteVisibility)newSettings.DefaultNoteVisibility;
settings.DefaultRenoteVisibility = (Note.NoteVisibility)newSettings.DefaultRenoteVisibility; settings.DefaultRenoteVisibility = (Note.NoteVisibility)newSettings.DefaultRenoteVisibility;
var user = HttpContext.GetUserOrFail(); var user = HttpContext.GetUserOrFail();
var dbUser = await db.Users.FirstAsync(p => p.Id == user.Id); await db.Users.Where(p => p.Id == user.Id)
dbUser.IsLocked = newSettings.ManuallyAcceptFollows || newSettings.PrivateMode; .ExecuteUpdateAsync(p => p.SetProperty(u => u.IsLocked,
newSettings.ManuallyAcceptFollows || newSettings.PrivateMode));
await db.SaveChangesAsync(); await db.SaveChangesAsync();
} }