Fixed validation of class inheritance in queries (#7789)

* Fixed validation of class inheritance in queries

Signed-off-by: Victor Ilyushchenko <alt13ri@gmail.com>

* added mixin check

Co-authored-by: Denis Bykhov <bykhov.denis@gmail.com>
Signed-off-by: Victor Ilyushchenko <alt13ri@gmail.com>

---------

Signed-off-by: Victor Ilyushchenko <alt13ri@gmail.com>
Co-authored-by: Denis Bykhov <bykhov.denis@gmail.com>
This commit is contained in:
Victor Ilyushchenko 2025-01-27 13:04:09 +03:00 committed by GitHub
parent e950ee48a3
commit 83a912d716
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -156,7 +156,11 @@ export function matchQuery<T extends Doc> (
hierarchy: Hierarchy,
skipLookup: boolean = false
): Doc[] {
let result = docs
const baseClass = hierarchy.getBaseClass(clazz)
let result = docs.filter((r) => hierarchy.isDerived(r._class, baseClass))
if (baseClass !== clazz) {
result = docs.filter((r) => hierarchy.hasMixin(r, clazz))
}
for (const key in query) {
if (skipLookup && key.startsWith('$lookup.')) {
continue