22 lines
709 B
C#
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);
|
|
}
|
|
}
|