using LiveForum.Model.Dto.Permission;
using LiveForum.Model.Enum;
using System.Threading.Tasks;
namespace LiveForum.IService.Permission
{
///
/// 权限服务接口 - 计算用户有效权限、校验单项权限
///
public interface IPermissionService
{
///
/// 获取用户的有效权限集合
/// 有效权限 = SK认证等级权限 ∪ 所有身份组权限(任一来源允许即允许)
///
/// 用户ID
/// 用户的有效权限DTO
Task GetEffectivePermissionAsync(long userId);
///
/// 校验用户是否拥有指定权限,无权限时抛出 MessageBox 异常(ResponseCode.Forbidden)
///
/// 用户ID
/// 要校验的权限类型
Task CheckPermissionAsync(long userId, PermissionType permissionType);
}
}