feat: update Action component

update Action component to check allowed by other func first

Change-Id: I656d853417dd5969fd5c4f226689111f9043b993
This commit is contained in:
Jingwei.Zhang 2023-09-01 17:30:51 +08:00
parent e1893756d6
commit 94b2e8d58f

View File

@ -19,6 +19,7 @@ export async function checkAllowed({
policy, policy,
aliasPolicy, aliasPolicy,
allowed, allowed,
allowedExtra,
containerProps, containerProps,
actionName, actionName,
extra, extra,
@ -38,6 +39,16 @@ export async function checkAllowed({
return false; return false;
} }
let result = false; let result = false;
let allowedExtraResult = true;
if (allowedExtra) {
allowedExtraResult = allowedExtra({ item, containerProps, extra, action });
if (allowedExtraResult instanceof Promise) {
allowedExtraResult = await allowedExtraResult;
}
}
if (!allowedExtraResult) {
return false;
}
if (allowed) { if (allowed) {
result = allowed(item, containerProps, extra); result = allowed(item, containerProps, extra);
if (result instanceof Promise) { if (result instanceof Promise) {
@ -61,6 +72,7 @@ export async function getAllowedResults({
policy: key ? it[key].policy : it.policy, policy: key ? it[key].policy : it.policy,
aliasPolicy: key ? it[key].aliasPolicy : it.aliasPolicy, aliasPolicy: key ? it[key].aliasPolicy : it.aliasPolicy,
allowed: key ? it[key].allowed : it.allowed, allowed: key ? it[key].allowed : it.allowed,
allowedExtra: key ? it[key].allowedExtra : it.allowedExtra,
containerProps, containerProps,
actionName: key ? it[key].title : it.title, actionName: key ? it[key].title : it.title,
extra, extra,