fix: fix policy map and others

Change the functions about check policy to get better extension

Change-Id: Ia42ac8669fadc8b6037e4adf5470d53084c6528f
This commit is contained in:
xusongfu 2022-07-01 10:48:01 +08:00
parent 979d41ffba
commit 0a7e61521e

View File

@ -79,7 +79,7 @@ export const policyMap = {
'instance:create', 'instance:create',
'instance:delete', 'instance:delete',
'instance:backups', 'instance:backups',
'instance:delete', 'instance:resize',
'instance:extension', 'instance:extension',
'instance:guest_log_list', 'instance:guest_log_list',
'configuration:', 'configuration:',
@ -88,9 +88,9 @@ export const policyMap = {
], ],
}; };
export const convertPolicyMap = () => { export const convertPolicyMap = (map) => {
const newObj = {}; const newObj = {};
Object.entries(policyMap).forEach(([key, value]) => { Object.entries(map).forEach(([key, value]) => {
value.forEach((v) => { value.forEach((v) => {
if (newObj[v]) { if (newObj[v]) {
// eslint-disable-next-line no-console // eslint-disable-next-line no-console
@ -102,8 +102,8 @@ export const convertPolicyMap = () => {
return newObj; return newObj;
}; };
export const changeToActualPolicy = (rule) => { export const changeToActualPolicy = (rule, map) => {
const policies = convertPolicyMap(); const policies = convertPolicyMap(map);
if (policies[rule]) { if (policies[rule]) {
return `${policies[rule]}:${rule}`; return `${policies[rule]}:${rule}`;
} }
@ -127,7 +127,9 @@ export const checkPolicyRule = (rule, actionName, isAliasPolicy) => {
if (!rule) { if (!rule) {
return true; return true;
} }
const actualRule = isAliasPolicy ? rule : changeToActualPolicy(rule); const actualRule = isAliasPolicy
? rule
: changeToActualPolicy(rule, policyMap);
const item = globalRootStore.policies.find((it) => it.rule === actualRule); const item = globalRootStore.policies.find((it) => it.rule === actualRule);
if (!item) { if (!item) {
// eslint-disable-next-line no-console // eslint-disable-next-line no-console