IBoardPermissionService.cs 855 B

1234567891011121314151617181920212223
  1. using Domain.Entities.Forum.Boards;
  2. using Domain.Entities.Members;
  3. namespace Application.Abstractions.Forum;
  4. public interface IBoardPermissionService
  5. {
  6. /// <summary>
  7. /// 회원의 유효 권한 레벨 계산
  8. /// - IsAdmin → 1000, BoardManager → 99, 그 외 → memberGrade.Order (기본 0)
  9. /// </summary>
  10. Task<short> GetMemberPermissionLevelAsync(Member member, int boardID, CancellationToken ct);
  11. /// <summary>
  12. /// 특정 권한 레벨에 대해 회원이 접근 가능한지 확인
  13. /// </summary>
  14. Task<bool> HasPermissionAsync(Member member, int boardID, short requiredPermission, CancellationToken ct);
  15. /// <summary>
  16. /// 게시판 매니저 정보 조회 (CanEdit/CanDelete 확인용)
  17. /// </summary>
  18. Task<BoardManager?> GetBoardManagerAsync(int boardID, int memberID, CancellationToken ct);
  19. }