Files
ERP_Distribution/Distribution/Infra/Auth/PermissionService.cs

22 lines
709 B
C#

using Distribution.Data;
using Microsoft.EntityFrameworkCore;
namespace Distribution.Infra.Auth
{
public class PermissionService : IPermissionService
{
private readonly AppDBContext _context;
public PermissionService(AppDBContext context)
{
_context = context;
}
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);
}
}