权限相关调整
This commit is contained in:
+17
-17
@@ -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>()
|
||||
|
||||
Reference in New Issue
Block a user