Refactor authorization folder structure

This commit is contained in:
2026-08-19 11:39:44 +05:30
parent 56cd93c341
commit 45f374133f
32 changed files with 378 additions and 290 deletions
@@ -0,0 +1,6 @@
namespace Distribution.Infra.Authorization;
public interface IPermissionRepository
{
Task<bool> HasPermissionAsync(Guid roleId, string permissionCode);
}
@@ -0,0 +1,6 @@
namespace Distribution.Infra.Authorization;
public interface IPermissionService
{
Task<bool> HasPermissionAsync(Guid roleId, string permissionCode);
}
@@ -0,0 +1,13 @@
using Distribution.Data;
using Microsoft.EntityFrameworkCore;
namespace Distribution.Infra.Authorization;
public class PermissionRepository(AppDBContext context) : IPermissionRepository
{
public async Task<bool> HasPermissionAsync(Guid roleId, string permissionCode) =>
await context.RolePermissions
.Where(rp => rp.FK_RoleId == roleId && rp.IsActive)
.Join(context.Permissions.Where(p => p.IsActive), rp => rp.FK_PermissionId, p => p.Id, (rp, p) => p.Code)
.AnyAsync(code => code == permissionCode);
}
@@ -0,0 +1,7 @@
namespace Distribution.Infra.Authorization;
public class PermissionService(IPermissionRepository repo) : IPermissionService
{
public Task<bool> HasPermissionAsync(Guid roleId, string permissionCode) =>
repo.HasPermissionAsync(roleId, permissionCode);
}