修改features/console中initAvailMenus方法,当path为空字符串时sourceEntity与destEntity一致
This commit is contained in:
parent
c45665d324
commit
1340a70752
|
|
@ -51,29 +51,40 @@ export default class Console extends Feature {
|
|||
const schema = this.cache.getSchema();
|
||||
this.availMenus = this.menus.map((menu) => {
|
||||
const { destEntity, path, ...rest } = menu;
|
||||
if (path && destEntity) {
|
||||
const paths = path.split('.');
|
||||
if (destEntity) {
|
||||
let sourceEntity = destEntity;
|
||||
paths.forEach((ele) => {
|
||||
const rel = judgeRelation(schema, sourceEntity, ele);
|
||||
if (rel === 2) {
|
||||
sourceEntity = ele;
|
||||
}
|
||||
else if (typeof rel === 'string') {
|
||||
sourceEntity = rel;
|
||||
}
|
||||
else {
|
||||
assert(rel instanceof Array);
|
||||
sourceEntity = rel[0];
|
||||
}
|
||||
});
|
||||
return {
|
||||
destEntity,
|
||||
path,
|
||||
sourceEntity,
|
||||
available: null,
|
||||
...rest,
|
||||
};
|
||||
if (path) {
|
||||
const paths = path.split('.');
|
||||
paths.forEach((ele) => {
|
||||
const rel = judgeRelation(schema, sourceEntity, ele);
|
||||
if (rel === 2) {
|
||||
sourceEntity = ele;
|
||||
}
|
||||
else if (typeof rel === 'string') {
|
||||
sourceEntity = rel;
|
||||
}
|
||||
else {
|
||||
assert(rel instanceof Array);
|
||||
sourceEntity = rel[0];
|
||||
}
|
||||
});
|
||||
return {
|
||||
destEntity,
|
||||
path,
|
||||
sourceEntity,
|
||||
available: null,
|
||||
...rest,
|
||||
};
|
||||
}
|
||||
else {
|
||||
return {
|
||||
destEntity,
|
||||
path,
|
||||
sourceEntity,
|
||||
available: null,
|
||||
...rest,
|
||||
};
|
||||
}
|
||||
}
|
||||
return {
|
||||
...menu,
|
||||
|
|
|
|||
|
|
@ -53,29 +53,40 @@ class Console extends Feature_1.Feature {
|
|||
const schema = this.cache.getSchema();
|
||||
this.availMenus = this.menus.map((menu) => {
|
||||
const { destEntity, path, ...rest } = menu;
|
||||
if (path && destEntity) {
|
||||
const paths = path.split('.');
|
||||
if (destEntity) {
|
||||
let sourceEntity = destEntity;
|
||||
paths.forEach((ele) => {
|
||||
const rel = (0, relation_1.judgeRelation)(schema, sourceEntity, ele);
|
||||
if (rel === 2) {
|
||||
sourceEntity = ele;
|
||||
}
|
||||
else if (typeof rel === 'string') {
|
||||
sourceEntity = rel;
|
||||
}
|
||||
else {
|
||||
(0, assert_1.assert)(rel instanceof Array);
|
||||
sourceEntity = rel[0];
|
||||
}
|
||||
});
|
||||
return {
|
||||
destEntity,
|
||||
path,
|
||||
sourceEntity,
|
||||
available: null,
|
||||
...rest,
|
||||
};
|
||||
if (path) {
|
||||
const paths = path.split('.');
|
||||
paths.forEach((ele) => {
|
||||
const rel = (0, relation_1.judgeRelation)(schema, sourceEntity, ele);
|
||||
if (rel === 2) {
|
||||
sourceEntity = ele;
|
||||
}
|
||||
else if (typeof rel === 'string') {
|
||||
sourceEntity = rel;
|
||||
}
|
||||
else {
|
||||
(0, assert_1.assert)(rel instanceof Array);
|
||||
sourceEntity = rel[0];
|
||||
}
|
||||
});
|
||||
return {
|
||||
destEntity,
|
||||
path,
|
||||
sourceEntity,
|
||||
available: null,
|
||||
...rest,
|
||||
};
|
||||
}
|
||||
else {
|
||||
return {
|
||||
destEntity,
|
||||
path,
|
||||
sourceEntity,
|
||||
available: null,
|
||||
...rest,
|
||||
};
|
||||
}
|
||||
}
|
||||
return {
|
||||
...menu,
|
||||
|
|
|
|||
|
|
@ -91,42 +91,56 @@ export default abstract class Console<ED extends EntityDict & BaseEntityDict, OM
|
|||
this.checkAvailMenus();
|
||||
}
|
||||
|
||||
private initAvailMenus() {
|
||||
private initAvailMenus() {
|
||||
const schema = this.cache.getSchema();
|
||||
this.availMenus = this.menus.map(
|
||||
(menu) => {
|
||||
const { destEntity, path, ...rest } = menu;
|
||||
|
||||
if (path && destEntity) {
|
||||
const paths = path.split('.');
|
||||
|
||||
if (destEntity) {
|
||||
let sourceEntity = destEntity;
|
||||
paths.forEach(
|
||||
(ele) => {
|
||||
const rel = judgeRelation(schema, sourceEntity, ele);
|
||||
if (rel === 2) {
|
||||
sourceEntity = ele as keyof ED;
|
||||
}
|
||||
else if (typeof rel === 'string') {
|
||||
sourceEntity = rel as keyof ED;
|
||||
}
|
||||
else {
|
||||
assert(rel instanceof Array);
|
||||
sourceEntity = rel[0] as keyof ED;
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
return {
|
||||
destEntity,
|
||||
path,
|
||||
sourceEntity,
|
||||
available: null,
|
||||
...rest,
|
||||
} as OMenu & {
|
||||
sourceEntity?: keyof ED;
|
||||
available: boolean | null;
|
||||
};
|
||||
if (path) {
|
||||
const paths = path.split('.');
|
||||
|
||||
paths.forEach(
|
||||
(ele) => {
|
||||
const rel = judgeRelation(schema, sourceEntity, ele);
|
||||
if (rel === 2) {
|
||||
sourceEntity = ele as keyof ED;
|
||||
}
|
||||
else if (typeof rel === 'string') {
|
||||
sourceEntity = rel as keyof ED;
|
||||
}
|
||||
else {
|
||||
assert(rel instanceof Array);
|
||||
sourceEntity = rel[0] as keyof ED;
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
return {
|
||||
destEntity,
|
||||
path,
|
||||
sourceEntity,
|
||||
available: null,
|
||||
...rest,
|
||||
} as OMenu & {
|
||||
sourceEntity?: keyof ED;
|
||||
available: boolean | null;
|
||||
};
|
||||
} else {
|
||||
return {
|
||||
destEntity,
|
||||
path,
|
||||
sourceEntity,
|
||||
available: null,
|
||||
...rest,
|
||||
} as OMenu & {
|
||||
sourceEntity?: keyof ED;
|
||||
available: boolean | null;
|
||||
};
|
||||
}
|
||||
}
|
||||
return {
|
||||
...menu,
|
||||
|
|
@ -203,7 +217,7 @@ export default abstract class Console<ED extends EntityDict & BaseEntityDict, OM
|
|||
default: {
|
||||
assert(actions?.length);
|
||||
assert(typeof path === 'string');
|
||||
|
||||
|
||||
if (sourceEntity === entity) {
|
||||
if (this.isRoot) {
|
||||
available = true;
|
||||
|
|
@ -211,7 +225,7 @@ export default abstract class Console<ED extends EntityDict & BaseEntityDict, OM
|
|||
else if (this.userId) {
|
||||
assert(actionAuths);
|
||||
available = !!actionAuths.find(
|
||||
actionAuth => intersection(actionAuth.deActions, actions).length > 0 && actionAuth.path!.destEntity === destEntity && path === actionAuth.path!.value
|
||||
actionAuth => intersection(actionAuth.deActions, actions).length > 0 && actionAuth.path!.destEntity === destEntity && path === actionAuth.path!.value
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue