权限相关调整
This commit is contained in:
+41
-9
@@ -6,10 +6,12 @@ namespace SimpleAdmin.Application;
|
||||
public class OnboardingEntryConfigService : IOnboardingEntryConfigService
|
||||
{
|
||||
private readonly SqlSugarScope _db;
|
||||
private readonly IOnboardingDataPermissionService _dataPermission;
|
||||
|
||||
public OnboardingEntryConfigService()
|
||||
public OnboardingEntryConfigService(IOnboardingDataPermissionService dataPermission)
|
||||
{
|
||||
_db = DbContext.DB;
|
||||
_dataPermission = dataPermission;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -55,10 +57,15 @@ public class OnboardingEntryConfigService : IOnboardingEntryConfigService
|
||||
|
||||
if (input.Id.HasValue)
|
||||
{
|
||||
var exists = await _db.Queryable<ObFormField>().AnyAsync(x => x.Id == input.Id.Value);
|
||||
if (!exists)
|
||||
throw Oops.Bah("字段不存在");
|
||||
|
||||
var exists = await _db.Queryable<ObFormField>().InSingleAsync(input.Id.Value)
|
||||
?? throw Oops.Bah("字段不存在");
|
||||
await _dataPermission.EnsureCanManage(
|
||||
exists.CreateUserId,
|
||||
OnboardingPermissionCodes.EntryConfigManageAll,
|
||||
"入职字段");
|
||||
entity.CreateUserId = exists.CreateUserId;
|
||||
entity.CreateUser = exists.CreateUser;
|
||||
entity.CreateTime = exists.CreateTime;
|
||||
await _db.Updateable(entity).ExecuteCommandAsync();
|
||||
return;
|
||||
}
|
||||
@@ -95,6 +102,16 @@ public class OnboardingEntryConfigService : IOnboardingEntryConfigService
|
||||
if (input.Ids.Count == 0)
|
||||
return;
|
||||
|
||||
var fields = await _db.Queryable<ObFormField>()
|
||||
.Where(item => input.Ids.Contains(item.Id))
|
||||
.ToListAsync();
|
||||
if (fields.Count != input.Ids.Distinct().Count())
|
||||
throw Oops.Bah("字段不存在");
|
||||
await _dataPermission.EnsureCanManage(
|
||||
fields.Select(item => item.CreateUserId),
|
||||
OnboardingPermissionCodes.EntryConfigManageAll,
|
||||
"入职字段");
|
||||
|
||||
var isReferenced = await _db.Queryable<ObFormRequirement>()
|
||||
.AnyAsync(x => input.Ids.Contains(x.FieldId));
|
||||
var isReferencedByTemplate = await _db.Queryable<ObOnboardingTemplateFormField>()
|
||||
@@ -145,10 +162,15 @@ public class OnboardingEntryConfigService : IOnboardingEntryConfigService
|
||||
|
||||
if (input.Id.HasValue)
|
||||
{
|
||||
var exists = await _db.Queryable<ObMaterialType>().AnyAsync(x => x.Id == input.Id.Value);
|
||||
if (!exists)
|
||||
throw Oops.Bah("资料类型不存在");
|
||||
|
||||
var exists = await _db.Queryable<ObMaterialType>().InSingleAsync(input.Id.Value)
|
||||
?? throw Oops.Bah("资料类型不存在");
|
||||
await _dataPermission.EnsureCanManage(
|
||||
exists.CreateUserId,
|
||||
OnboardingPermissionCodes.EntryConfigManageAll,
|
||||
"资料类型");
|
||||
entity.CreateUserId = exists.CreateUserId;
|
||||
entity.CreateUser = exists.CreateUser;
|
||||
entity.CreateTime = exists.CreateTime;
|
||||
await _db.Updateable(entity).ExecuteCommandAsync();
|
||||
return;
|
||||
}
|
||||
@@ -164,6 +186,16 @@ public class OnboardingEntryConfigService : IOnboardingEntryConfigService
|
||||
if (input.Ids.Count == 0)
|
||||
return;
|
||||
|
||||
var materialTypes = await _db.Queryable<ObMaterialType>()
|
||||
.Where(item => input.Ids.Contains(item.Id))
|
||||
.ToListAsync();
|
||||
if (materialTypes.Count != input.Ids.Distinct().Count())
|
||||
throw Oops.Bah("资料类型不存在");
|
||||
await _dataPermission.EnsureCanManage(
|
||||
materialTypes.Select(item => item.CreateUserId),
|
||||
OnboardingPermissionCodes.EntryConfigManageAll,
|
||||
"资料类型");
|
||||
|
||||
var isReferenced = await _db.Queryable<ObMaterialRequirement>()
|
||||
.AnyAsync(x => input.Ids.Contains(x.MaterialTypeId));
|
||||
var isReferencedByTemplate = await _db.Queryable<ObOnboardingTemplateMaterial>()
|
||||
|
||||
Reference in New Issue
Block a user