Interface IPlatformAdminRepository
- Namespace
- KadicAuth.Application.PlatformAdmins.Abstractions
- Assembly
- KadicAuth.Application.dll
Persistence abstraction for PlatformAdmin membership. Lives here (Application) so handlers can depend on it without pulling in EF Core.
public interface IPlatformAdminRepository
Methods
AddAsync(PlatformAdmin, CancellationToken)
Task AddAsync(PlatformAdmin platformAdmin, CancellationToken cancellationToken = default)
Parameters
platformAdminPlatformAdmincancellationTokenCancellationToken
Returns
- Task
AddAuditLogAsync(PlatformAdminAuditLogEntry, CancellationToken)
Task AddAuditLogAsync(PlatformAdminAuditLogEntry entry, CancellationToken cancellationToken = default)
Parameters
entryPlatformAdminAuditLogEntrycancellationTokenCancellationToken
Returns
- Task
CountActiveAsync(CancellationToken)
Count of currently-active platform admins. Used by the controller to prevent a platform-admin from revoking themselves when they are the last one standing.
Task<int> CountActiveAsync(CancellationToken cancellationToken = default)
Parameters
cancellationTokenCancellationToken
Returns
- Task<int>
GetAllActiveAsync(CancellationToken)
Returns all currently-active platform admins. Used only at startup for the integrity scan — not on the hot authentication path.
Task<IReadOnlyList<PlatformAdmin>> GetAllActiveAsync(CancellationToken cancellationToken = default)
Parameters
cancellationTokenCancellationToken
Returns
- Task<IReadOnlyList<PlatformAdmin>>
GetByUserIdAsync(Guid, CancellationToken)
Task<PlatformAdmin?> GetByUserIdAsync(Guid userId, CancellationToken cancellationToken = default)
Parameters
userIdGuidcancellationTokenCancellationToken
Returns
- Task<PlatformAdmin>
HasAuditLogEntryAsync(Guid, CancellationToken)
Security cross-check: returns true only if the audit log contains at least one 'Granted' or 'ReGranted' entry for the given user. A row in PlatformAdmins without a matching audit entry is a sign of direct database manipulation.
Task<bool> HasAuditLogEntryAsync(Guid userId, CancellationToken cancellationToken = default)
Parameters
userIdGuidcancellationTokenCancellationToken
Returns
- Task<bool>
IsActiveAsync(Guid, CancellationToken)
Hot-path lookup: is the given user currently an ACTIVE platform admin? Must be a short, indexed query — it is invoked on every cross-tenant check in the patched handlers.
Task<bool> IsActiveAsync(Guid userId, CancellationToken cancellationToken = default)
Parameters
userIdGuidcancellationTokenCancellationToken
Returns
- Task<bool>
ListAsync(CancellationToken)
Task<IReadOnlyList<PlatformAdminDto>> ListAsync(CancellationToken cancellationToken = default)
Parameters
cancellationTokenCancellationToken
Returns
- Task<IReadOnlyList<PlatformAdminDto>>
SaveChangesAsync(CancellationToken)
Task SaveChangesAsync(CancellationToken cancellationToken = default)
Parameters
cancellationTokenCancellationToken
Returns
- Task
UpdateAsync(PlatformAdmin, CancellationToken)
Task UpdateAsync(PlatformAdmin platformAdmin, CancellationToken cancellationToken = default)
Parameters
platformAdminPlatformAdmincancellationTokenCancellationToken
Returns
- Task