0052725b88
- Created UserViewSheet component to display user details including username, full name, role, status, and timestamps. - Created RoleViewSheet component to display role details including name, level, status, creation date, and associated permissions. - Introduced permissions configuration in a new permissions.ts file, defining categories and permission codes for better management. - Implemented middleware for authentication, ensuring access control for protected routes.
46 lines
1.4 KiB
C#
46 lines
1.4 KiB
C#
using Distribution.Data;
|
|
using Distribution.Models;
|
|
using Microsoft.EntityFrameworkCore;
|
|
|
|
namespace Distribution.Features.Role;
|
|
|
|
public class RoleRepository(AppDBContext context) : IRoleRepository
|
|
{
|
|
public async Task<Models.Role?> GetByIdAsync(Guid id) =>
|
|
await context.Roles.FindAsync(id);
|
|
|
|
public async Task<List<Models.Role>> GetAllAsync() =>
|
|
await context.Roles.ToListAsync();
|
|
|
|
public async Task<List<Models.RolePermission>> GetPermissionsAsync(Guid roleId) =>
|
|
await context.RolePermissions
|
|
.Include(rp => rp.Permission)
|
|
.Where(rp => rp.FK_RoleId == roleId && rp.IsActive)
|
|
.ToListAsync();
|
|
|
|
public async Task AddAsync(Models.Role role) =>
|
|
await context.Roles.AddAsync(role);
|
|
|
|
public void Update(Models.Role role) =>
|
|
context.Roles.Update(role);
|
|
|
|
public void Remove(Models.Role role)
|
|
{
|
|
role.IsActive = false;
|
|
context.Roles.Update(role);
|
|
}
|
|
|
|
public async Task ReplacePermissionsAsync(Guid roleId, List<Guid> permissionIds)
|
|
{
|
|
var existing = await context.RolePermissions
|
|
.Where(rp => rp.FK_RoleId == roleId)
|
|
.ToListAsync();
|
|
context.RolePermissions.RemoveRange(existing);
|
|
context.RolePermissions.AddRange(permissionIds.Select(pid => new RolePermission
|
|
{
|
|
FK_RoleId = roleId,
|
|
FK_PermissionId = pid
|
|
}));
|
|
}
|
|
}
|