|
|
|
@ -169,7 +169,7 @@ public class TenantController extends BaseController { |
|
|
|
return checkNotNull(tenantService.findTenantInfos(pageLink)); |
|
|
|
} |
|
|
|
|
|
|
|
@PreAuthorize("hasAnyAuthority('SYS_ADMIN')") |
|
|
|
@PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')") |
|
|
|
@GetMapping(value = "/tenants", params = {"tenantIds"}) |
|
|
|
public List<Tenant> getTenantsByIds( |
|
|
|
@Parameter(description = "A list of tenant ids, separated by comma ','", array = @ArraySchema(schema = @Schema(type = "string"))) |
|
|
|
@ -179,7 +179,18 @@ public class TenantController extends BaseController { |
|
|
|
for (UUID tenantIdUUID : tenantUUIDs) { |
|
|
|
tenantIds.add(TenantId.fromUUID(tenantIdUUID)); |
|
|
|
} |
|
|
|
return tenantService.findTenantsByIds(tenantId, tenantIds); |
|
|
|
List<Tenant> tenants = tenantService.findTenantsByIds(tenantId, tenantIds); |
|
|
|
return filterTenantsByReadPermission(tenants); |
|
|
|
} |
|
|
|
|
|
|
|
private List<Tenant> filterTenantsByReadPermission(List<Tenant> tenants) { |
|
|
|
return tenants.stream().filter(tenant -> { |
|
|
|
try { |
|
|
|
return accessControlService.hasPermission(getCurrentUser(), Resource.TENANT, Operation.READ, tenant.getId(), tenant); |
|
|
|
} catch (ThingsboardException e) { |
|
|
|
return false; |
|
|
|
} |
|
|
|
}).toList(); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|