权限相关调整

This commit is contained in:
fuenmao
2026-09-10 16:43:11 +08:00
parent 1fd557a19e
commit f858b04701
19 changed files with 393 additions and 53 deletions
@@ -17,20 +17,20 @@ public class OnboardingElectronicSignService : IOnboardingElectronicSignService
private readonly IQiyuesuoClient _qiyuesuoClient;
private readonly IOnboardingContractDocumentService _contractDocumentService;
private readonly IFileService _fileService;
private readonly IConfigService _configService;
private readonly IOnboardingDataPermissionService _dataPermission;
private readonly QiyuesuoSettingOptions _setting;
public OnboardingElectronicSignService(
IQiyuesuoClient qiyuesuoClient,
IOnboardingContractDocumentService contractDocumentService,
IFileService fileService,
IConfigService configService)
IOnboardingDataPermissionService dataPermission)
{
_db = DbContext.DB;
_qiyuesuoClient = qiyuesuoClient;
_contractDocumentService = contractDocumentService;
_fileService = fileService;
_configService = configService;
_dataPermission = dataPermission;
_setting = App.GetConfig<QiyuesuoSettingOptions>(
"QiyuesuoSetting",
true)
@@ -41,7 +41,7 @@ public class OnboardingElectronicSignService : IOnboardingElectronicSignService
public async Task<OnboardingElectronicSignDetailOutput> Detail(
BaseIdInput input)
{
var task = await GetAuthorizedTask(input.Id);
var task = await GetTask(input.Id);
return await BuildDetail(task);
}
@@ -290,7 +290,7 @@ public class OnboardingElectronicSignService : IOnboardingElectronicSignService
public async Task<OnboardingElectronicSignPreviewOutput> PreviewEmployeeSignedDocument(
OnboardingElectronicSignPreviewInput input)
{
var task = await GetAuthorizedTask(input.TaskId);
var task = await GetTask(input.TaskId);
var process = await GetRequiredProcess(task.Id);
// 不信任前端缓存状态。每次预览前重新查询契约锁,确保员工确实已完成签署。
@@ -1247,24 +1247,24 @@ public class OnboardingElectronicSignService : IOnboardingElectronicSignService
}
/// <summary>
/// 电子签管理沿用入职审核人权限,不新增另一套权限来源。
/// 电子签操作遵循任务创建人/任务管理全部权限。
/// </summary>
private async Task<ObOnboardingTask> GetAuthorizedTask(long taskId)
{
var task = await _db.Queryable<ObOnboardingTask>().InSingleAsync(taskId)
?? throw Oops.Bah("入职任务不存在");
var config = await _configService.GetByConfigKey(
CateGoryConst.CONFIG_BIZ_DEFINE,
"onboard.reviewer.userIds")
?? throw Oops.Bah("请配置入职审核人");
var reviewerIds = OnboardingReviewerConfigParser.Parse(
config.ConfigValue,
task.CompanyId);
if (!reviewerIds.Contains(UserManager.UserId))
throw Oops.Bah("您不是该入职任务的审核人");
var task = await GetTask(taskId);
await _dataPermission.EnsureCanManage(
task.CreateUserId,
OnboardingPermissionCodes.TaskManageAll,
"入职任务");
return task;
}
private async Task<ObOnboardingTask> GetTask(long taskId)
{
return await _db.Queryable<ObOnboardingTask>().InSingleAsync(taskId)
?? throw Oops.Bah("入职任务不存在");
}
private async Task<ObElectronicSignProcess> GetLatestProcess(long taskId)
{
return await _db.Queryable<ObElectronicSignProcess>()