fix 获取部门权限处理
This commit is contained in:
@@ -124,19 +124,17 @@ public class DevicePermissionService : IDevicePermissionService
|
|||||||
|
|
||||||
public async Task<List<Guid>> GetAssignmentsAsync(DeviceGetAssignmentsRequest request)
|
public async Task<List<Guid>> GetAssignmentsAsync(DeviceGetAssignmentsRequest request)
|
||||||
{
|
{
|
||||||
var currentTenantId = request.AssignType == AssignTypeEnumType.Department ? request.TenantId : _currentUser.GetStringTenantId();
|
request.AssignValue = request.AssignType == AssignTypeEnumType.Department ? request.TenantId + ":" + request.AssignValue : request.AssignValue;
|
||||||
var role = _currentUser.GetRole();
|
var role = _currentUser.GetRole();
|
||||||
var isAll = role is "admin" or "tenant-admin";
|
var isAll = role is "admin" or "tenant-admin";
|
||||||
var deviceCodes = _myDataPermissionService.GetMyDeviceCodes();
|
var deviceCodes = _myDataPermissionService.GetMyDeviceCodes();
|
||||||
|
|
||||||
return await _dbContext.Queryable<DevicePermissionEntity>()
|
return await _dbContext.Queryable<DevicePermissionEntity>()
|
||||||
.WhereIF(request.TenantId.IsPresent() && request.AssignType == AssignTypeEnumType.Department, x => x.TenantId == request.TenantId)
|
|
||||||
.Where(x => x.AssignType == request.AssignType)
|
.Where(x => x.AssignType == request.AssignType)
|
||||||
.Where(x => x.AssignValue == request.AssignValue)
|
.Where(x => x.AssignValue == request.AssignValue)
|
||||||
.Where(x => x.UniqueType == request.UniqueType)
|
.Where(x => x.UniqueType == request.UniqueType)
|
||||||
.WhereIF(request.UniqueType == DeviceAssignmentTypeEnumType.Device && !isAll, x => deviceCodes.Contains(x.UniqueValue))
|
.WhereIF(request.UniqueType == DeviceAssignmentTypeEnumType.Device && !isAll, x => deviceCodes.Contains(x.UniqueValue))
|
||||||
.Where(x => x.Type == request.Type)
|
.Where(x => x.Type == request.Type)
|
||||||
.Where(x => x.TenantId == currentTenantId)
|
|
||||||
.Select(x => x.UniqueValue)
|
.Select(x => x.UniqueValue)
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user