fix 权限导入控制来源类型

This commit is contained in:
2024-06-24 16:57:06 +08:00
parent 6d773cb0e1
commit d1d2334a84
2 changed files with 16 additions and 31 deletions

View File

@@ -31,23 +31,11 @@ public class DevicePermissionsAssignToDeviceRequest : IValidatableObject
/// </summary>
public bool IsDelete { get; set; }
/// <summary>
/// AssignType == AssignTypeEnumType.Department 需要传入
/// </summary>
public string TenantId { get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if (AssignType == AssignTypeEnumType.Department)
if (AssignType != AssignTypeEnumType.User)
{
if (TenantId.IsEmpty())
{
yield return new ValidationResult("请明确具体的厂区", new[] { nameof(TenantId) });
}
}
else if (AssignType == AssignTypeEnumType.Role)
{
yield return new ValidationResult("暂不支持角色分配", new[] { nameof(AssignType) });
yield return new ValidationResult("仅支持导入档案人员", new[] { nameof(AssignType) });
}
}
}

View File

@@ -92,38 +92,35 @@ public class DevicePermissionService : IDevicePermissionService
public async Task AssignToUniqueAsync(DevicePermissionsAssignToDeviceRequest request)
{
var tenantId = request.AssignType == AssignTypeEnumType.Department ? request.TenantId : _currentUser.GetStringTenantId();
await GenerateDeviceTasksAsync(async () =>
{
var tenantId = _currentUser.GetStringTenantId();
//删除当前匹配的基地权限
var p = await _dbContext.Queryable<DevicePermissionEntity>()
.Where(x => x.UniqueType == request.UniqueType)
.Where(x => x.UniqueValue == request.UniqueValue)
.Where(x => x.AssignType == request.AssignType)
.Where(x => request.Values.Contains(x.AssignValue))
.Where(x => x.TenantId == tenantId)
.ToListAsync();
await _dbContext.DeleteReallyAsync(p);
await _dbContext.DeleteAsync(p);
if (!request.IsDelete)
//保存配置的权限
if (request.Values.IsPresent())
{
//保存配置的权限
if (request.Values.IsPresent())
var devicePermissions = request.Values.Select(v => new DevicePermissionEntity
{
var devicePermissions = request.Values.Select(v => new DevicePermissionEntity
{
AssignType = request.AssignType,
AssignValue = v,
UniqueType = request.UniqueType,
UniqueValue = request.UniqueValue,
TenantId = tenantId
}).ToList();
UniqueType = request.UniqueType,
UniqueValue = request.UniqueValue,
AssignType = request.AssignType,
AssignValue = v,
TenantId = tenantId
}).ToList();
await _dbContext.InsertAsync(devicePermissions);
}
await _dbContext.InsertAsync(devicePermissions);
}
}, null);
}