[backend/core] Fix edge case in GetOrCreateSystemUserAsync
This commit is contained in:
parent
6386601e3e
commit
dd3ea49367
1 changed files with 6 additions and 1 deletions
|
@ -46,7 +46,12 @@ public class SystemUserService(ILogger<SystemUserService> logger, DatabaseContex
|
|||
|
||||
private async Task<User> GetOrCreateSystemUserAsync(string username)
|
||||
{
|
||||
var user = await cache.FetchAsync($"systemUser:{username}", TimeSpan.FromHours(24), async () =>
|
||||
var user = db.ChangeTracker
|
||||
.Entries<User>()
|
||||
.FirstOrDefault(p => p.Entity.UsernameLower == username.ToLowerInvariant())
|
||||
?.Entity;
|
||||
|
||||
user ??= await cache.FetchAsync($"systemUser:{username}", TimeSpan.FromHours(24), async () =>
|
||||
{
|
||||
using (await KeyedLocker.LockAsync(username.ToLowerInvariant()))
|
||||
{
|
||||
|
|
Loading…
Add table
Reference in a new issue