forked from xiongyuxing/tiku-backend.net
feat: enforce tenant isolation and shared question bank
This commit is contained in:
27
Tiku.Application/QuestionBanks/IQuestionReferenceService.cs
Normal file
27
Tiku.Application/QuestionBanks/IQuestionReferenceService.cs
Normal file
@@ -0,0 +1,27 @@
|
||||
using Tiku.Domain.Content;
|
||||
|
||||
namespace Tiku.Application.QuestionBanks;
|
||||
|
||||
public interface IPublicQuestionAccessPolicy
|
||||
{
|
||||
Task EnsureCanStartAsync(Guid tenantId, CancellationToken cancellationToken = default);
|
||||
}
|
||||
|
||||
public interface IQuestionReferenceService
|
||||
{
|
||||
Task<TenantQuestionReference> ResolveAsync(
|
||||
Guid tenantId,
|
||||
Guid? userId,
|
||||
QuestionLocator locator,
|
||||
CancellationToken cancellationToken = default);
|
||||
}
|
||||
|
||||
public sealed class PublicQuestionAccessDeniedException(string code, string message) : Exception(message)
|
||||
{
|
||||
public string Code { get; } = code;
|
||||
}
|
||||
|
||||
public sealed class QuestionLocatorException(string code, string message) : Exception(message)
|
||||
{
|
||||
public string Code { get; } = code;
|
||||
}
|
||||
Reference in New Issue
Block a user