feat: implement RadiusService for guest user management and authentication configurations
Build and Push Docker Image to Gitea Container Registry / build-and-push (push) Successful in 1m10s
Build and Push Docker Image to Gitea Container Registry / build-and-push (push) Successful in 1m10s
This commit is contained in:
@@ -164,13 +164,13 @@ public class RadiusService : IRadiusService
|
||||
|
||||
public async Task<List<UserUsageDto>> GetAllUsersWithUsageAsync()
|
||||
{
|
||||
var profiles = await _db.GuestProfiles.OrderByDescending(p => p.CreatedAt).ToListAsync();
|
||||
var passwords = await _db.RadCheck
|
||||
var profiles = await _db.GuestProfiles.AsNoTracking().OrderByDescending(p => p.CreatedAt).ToListAsync();
|
||||
var passwords = await _db.RadCheck.AsNoTracking()
|
||||
.Where(rc => rc.Attribute == "Cleartext-Password")
|
||||
.ToDictionaryAsync(rc => rc.Username, rc => rc.Value);
|
||||
|
||||
// Group accounting data by username (for session time and connection status)
|
||||
var acctStats = await _db.RadAcct
|
||||
var acctStats = await _db.RadAcct.AsNoTracking()
|
||||
.GroupBy(ra => ra.Username)
|
||||
.Select(g => new
|
||||
{
|
||||
@@ -181,7 +181,7 @@ public class RadiusService : IRadiusService
|
||||
.ToDictionaryAsync(g => g.Username);
|
||||
|
||||
// Fetch data usage from the new dedicated table
|
||||
var dataUsage = await _db.GuestDataUsage.ToDictionaryAsync(du => du.Username);
|
||||
var dataUsage = await _db.GuestDataUsage.AsNoTracking().ToDictionaryAsync(du => du.Username);
|
||||
|
||||
var result = new List<UserUsageDto>();
|
||||
|
||||
@@ -213,7 +213,7 @@ public class RadiusService : IRadiusService
|
||||
|
||||
public async Task<List<RadAcct>> GetActiveSessionsAsync()
|
||||
{
|
||||
return await _db.RadAcct
|
||||
return await _db.RadAcct.AsNoTracking()
|
||||
.Where(ra => ra.AcctStopTime == null)
|
||||
.OrderByDescending(ra => ra.AcctStartTime)
|
||||
.ToListAsync();
|
||||
|
||||
Reference in New Issue
Block a user