auth在判定相对路径时的一个判断不够严谨

This commit is contained in:
Xu Chang 2023-07-07 20:42:21 +08:00
parent 6dc6f7fdce
commit 93f934f0af
2 changed files with 4 additions and 4 deletions

View File

@ -124,14 +124,14 @@ var RelationAuth = /** @class */ (function () {
var filters = authCascadePaths.filter(function (path) {
// 被entity的外键连接所排队的路径这个非常重要否则像extraFile这样的对象会有过多的查询路径
for (var k in excludePaths) {
if (path[1].startsWith(k) && !excludePaths[k].find(function (ele) { return path[1].startsWith(ele); })) {
if (path[1].startsWith(k) && !excludePaths[k].find(function (ele) { return path[1].startsWith("".concat(ele, ".")); })) {
return false;
}
}
return true;
}).map(function (path) {
// 这里anchor的relativePath按长度倒排所以找到的第一个匹配关系应该就是最准确的
var relatedAnchor = anchors.find(function (anchor) { return path[1].startsWith(anchor.relativePath); });
var relatedAnchor = anchors.find(function (anchor) { return path[1].startsWith("".concat(anchor.relativePath, ".")); });
if (relatedAnchor) {
var entity_1 = relatedAnchor.entity, relativePath_1 = relatedAnchor.relativePath, filter_2 = relatedAnchor.filter;
var restPath = relativePath_1 === path[1] ? '' : relativePath_1 === '' ? path[1] : path[1].slice(relativePath_1.length + 1);

View File

@ -176,7 +176,7 @@ export class RelationAuth<ED extends EntityDict & BaseEntityDict>{
(path) => {
// 被entity的外键连接所排队的路径这个非常重要否则像extraFile这样的对象会有过多的查询路径
for (const k in excludePaths) {
if (path[1].startsWith(k) && !excludePaths[k].find(ele => path[1].startsWith(ele))) {
if (path[1].startsWith(k) && !excludePaths[k].find(ele => path[1].startsWith(`${ele}.`))) {
return false;
}
}
@ -186,7 +186,7 @@ export class RelationAuth<ED extends EntityDict & BaseEntityDict>{
(path) => {
// 这里anchor的relativePath按长度倒排所以找到的第一个匹配关系应该就是最准确的
const relatedAnchor = anchors.find(
(anchor) => path[1].startsWith(anchor.relativePath)
(anchor) => path[1].startsWith(`${anchor.relativePath}.`)
);
if (relatedAnchor) {
const { entity, relativePath, filter } = relatedAnchor;