权限相关调整

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
@@ -5,6 +5,13 @@ namespace SimpleAdmin.Application;
/// </summary>
public class OnboardingCompanyService : DbRepository<ObCompany>, IOnboardingCompanyService
{
private readonly IOnboardingDataPermissionService _dataPermission;
public OnboardingCompanyService(IOnboardingDataPermissionService dataPermission)
{
_dataPermission = dataPermission;
}
/// <summary>
/// 分页查询入职业务公司。
/// </summary>
@@ -54,7 +61,11 @@ public class OnboardingCompanyService : DbRepository<ObCompany>, IOnboardingComp
public async Task Edit(OnboardingCompanyEditInput input)
{
NormalizeAndValidateQiyuesuoConfig(input);
await Detail(new BaseIdInput { Id = input.Id });
var company = await Detail(new BaseIdInput { Id = input.Id });
await _dataPermission.EnsureCanManage(
company.CreateUserId,
OnboardingPermissionCodes.SetupManageAll,
"公司");
await EnsureCodeUnique(input.CompanyCode, input.Id);
await UpdateAsync(input.Adapt<ObCompany>());
}
@@ -67,6 +78,16 @@ public class OnboardingCompanyService : DbRepository<ObCompany>, IOnboardingComp
if (input.Ids.Count == 0)
return;
var companies = await Context.Queryable<ObCompany>()
.Where(item => input.Ids.Contains(item.Id))
.ToListAsync();
if (companies.Count != input.Ids.Distinct().Count())
throw Oops.Bah("公司不存在");
await _dataPermission.EnsureCanManage(
companies.Select(item => item.CreateUserId),
OnboardingPermissionCodes.SetupManageAll,
"公司");
var hasPositions = await Context.Queryable<ObPosition>()
.AnyAsync(it => input.Ids.Contains(it.CompanyId));
if (hasPositions)