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:
@@ -0,0 +1,2 @@
|
|||||||
|
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AComponentBase_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2026_002E1_003Fresharper_002Dhost_003FSourcesCache_003F2b3cf01714fd98ff7f12316ce766442f76ff6a46a8ffb780ec8550953d47b94c_003FComponentBase_002Ecs/@EntryIndexedValue">ForceIncluded</s:String></wpf:ResourceDictionary>
|
||||||
@@ -164,13 +164,13 @@ public class RadiusService : IRadiusService
|
|||||||
|
|
||||||
public async Task<List<UserUsageDto>> GetAllUsersWithUsageAsync()
|
public async Task<List<UserUsageDto>> GetAllUsersWithUsageAsync()
|
||||||
{
|
{
|
||||||
var profiles = await _db.GuestProfiles.OrderByDescending(p => p.CreatedAt).ToListAsync();
|
var profiles = await _db.GuestProfiles.AsNoTracking().OrderByDescending(p => p.CreatedAt).ToListAsync();
|
||||||
var passwords = await _db.RadCheck
|
var passwords = await _db.RadCheck.AsNoTracking()
|
||||||
.Where(rc => rc.Attribute == "Cleartext-Password")
|
.Where(rc => rc.Attribute == "Cleartext-Password")
|
||||||
.ToDictionaryAsync(rc => rc.Username, rc => rc.Value);
|
.ToDictionaryAsync(rc => rc.Username, rc => rc.Value);
|
||||||
|
|
||||||
// Group accounting data by username (for session time and connection status)
|
// 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)
|
.GroupBy(ra => ra.Username)
|
||||||
.Select(g => new
|
.Select(g => new
|
||||||
{
|
{
|
||||||
@@ -181,7 +181,7 @@ public class RadiusService : IRadiusService
|
|||||||
.ToDictionaryAsync(g => g.Username);
|
.ToDictionaryAsync(g => g.Username);
|
||||||
|
|
||||||
// Fetch data usage from the new dedicated table
|
// 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>();
|
var result = new List<UserUsageDto>();
|
||||||
|
|
||||||
@@ -213,7 +213,7 @@ public class RadiusService : IRadiusService
|
|||||||
|
|
||||||
public async Task<List<RadAcct>> GetActiveSessionsAsync()
|
public async Task<List<RadAcct>> GetActiveSessionsAsync()
|
||||||
{
|
{
|
||||||
return await _db.RadAcct
|
return await _db.RadAcct.AsNoTracking()
|
||||||
.Where(ra => ra.AcctStopTime == null)
|
.Where(ra => ra.AcctStopTime == null)
|
||||||
.OrderByDescending(ra => ra.AcctStartTime)
|
.OrderByDescending(ra => ra.AcctStartTime)
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
|
|||||||
Reference in New Issue
Block a user