权限相关调整
This commit is contained in:
+30
-1
@@ -6,10 +6,12 @@ namespace SimpleAdmin.Application;
|
||||
public class OnboardingTemplateService : IOnboardingTemplateService
|
||||
{
|
||||
private readonly SqlSugarScope _db;
|
||||
private readonly IOnboardingDataPermissionService _dataPermission;
|
||||
|
||||
public OnboardingTemplateService()
|
||||
public OnboardingTemplateService(IOnboardingDataPermissionService dataPermission)
|
||||
{
|
||||
_db = DbContext.DB;
|
||||
_dataPermission = dataPermission;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
@@ -59,6 +61,8 @@ public class OnboardingTemplateService : IOnboardingTemplateService
|
||||
return new OnboardingTemplateDetailOutput
|
||||
{
|
||||
Id = summary.Id,
|
||||
CreateUserId = summary.CreateUserId,
|
||||
CreateUser = summary.CreateUser,
|
||||
TemplateCode = summary.TemplateCode,
|
||||
TemplateName = summary.TemplateName,
|
||||
CompanyId = summary.CompanyId,
|
||||
@@ -108,6 +112,19 @@ public class OnboardingTemplateService : IOnboardingTemplateService
|
||||
? codeOwner.Id
|
||||
: input.Id ?? global::SimpleAdmin.Core.Utils.CommonUtils.GetSingleId();
|
||||
|
||||
if (input.Id.HasValue || isRestore)
|
||||
{
|
||||
var existing = isRestore
|
||||
? codeOwner
|
||||
: await _db.Queryable<ObOnboardingTemplate>().InSingleAsync(templateId);
|
||||
if (existing == null)
|
||||
throw Oops.Bah("入职模板不存在");
|
||||
await _dataPermission.EnsureCanManage(
|
||||
existing.CreateUserId,
|
||||
OnboardingPermissionCodes.EntryConfigManageAll,
|
||||
"入职模板");
|
||||
}
|
||||
|
||||
var entity = new ObOnboardingTemplate
|
||||
{
|
||||
Id = templateId,
|
||||
@@ -154,6 +171,16 @@ public class OnboardingTemplateService : IOnboardingTemplateService
|
||||
if (input.Ids.Count == 0)
|
||||
return;
|
||||
|
||||
var templates = await _db.Queryable<ObOnboardingTemplate>()
|
||||
.Where(item => input.Ids.Contains(item.Id))
|
||||
.ToListAsync();
|
||||
if (templates.Count != input.Ids.Distinct().Count())
|
||||
throw Oops.Bah("入职模板不存在");
|
||||
await _dataPermission.EnsureCanManage(
|
||||
templates.Select(item => item.CreateUserId),
|
||||
OnboardingPermissionCodes.EntryConfigManageAll,
|
||||
"入职模板");
|
||||
|
||||
var isUsed = await _db.Queryable<ObOnboardingTask>()
|
||||
.AnyAsync(item => input.Ids.Contains(item.OnboardingTemplateId));
|
||||
if (isUsed)
|
||||
@@ -422,6 +449,8 @@ public class OnboardingTemplateService : IOnboardingTemplateService
|
||||
return new OnboardingTemplateOutput
|
||||
{
|
||||
Id = template.Id,
|
||||
CreateUserId = template.CreateUserId,
|
||||
CreateUser = template.CreateUser,
|
||||
TemplateCode = template.TemplateCode,
|
||||
TemplateName = template.TemplateName,
|
||||
CompanyId = template.CompanyId,
|
||||
|
||||
Reference in New Issue
Block a user