diff --git a/src/components/Tables/Base/Action/index.jsx b/src/components/Tables/Base/Action/index.jsx index c6f3e0f5..9bea6103 100644 --- a/src/components/Tables/Base/Action/index.jsx +++ b/src/components/Tables/Base/Action/index.jsx @@ -17,6 +17,7 @@ import checkItemPolicy, { systemRoleIsReader } from 'resources/skyline/policy'; export async function checkAllowed({ item, policy, + aliasPolicy, allowed, containerProps, actionName, @@ -27,6 +28,7 @@ export async function checkAllowed({ const { enableSystemReader } = action || {}; const policyResult = checkItemPolicy({ policy, + aliasPolicy, item, actionName, isAdminPage, @@ -57,6 +59,7 @@ export async function getAllowedResults({ const result = checkAllowed({ item: data, policy: key ? it[key].policy : it.policy, + aliasPolicy: key ? it[key].aliasPolicy : it.aliasPolicy, allowed: key ? it[key].allowed : it.allowed, containerProps, actionName: key ? it[key].title : it.title, @@ -72,11 +75,16 @@ export async function getAllowedResults({ export function getPolicyResults({ actions, extra, isAdminPage }) { return actions.map((it) => { - const { policy, title, enableSystemReader } = it; + const { policy, aliasPolicy, title, enableSystemReader } = it; if (isAdminPage && !enableSystemReader && systemRoleIsReader()) { return false; } - const result = checkItemPolicy({ policy, actionName: title, extra }); + const result = checkItemPolicy({ + policy, + aliasPolicy, + actionName: title, + extra, + }); return result; }); } diff --git a/src/containers/Action/ConfirmAction/index.jsx b/src/containers/Action/ConfirmAction/index.jsx index d3531826..699245d4 100644 --- a/src/containers/Action/ConfirmAction/index.jsx +++ b/src/containers/Action/ConfirmAction/index.jsx @@ -91,6 +91,8 @@ export default class ConfirmAction { // eslint-disable-next-line no-unused-vars policy = ''; + aliasPolicy = ''; + unescape = (message) => unescapeHtml(message); getItemId = (data) => data.id; diff --git a/src/containers/Action/FormAction/index.jsx b/src/containers/Action/FormAction/index.jsx index 747b3bb4..7e71e5d7 100644 --- a/src/containers/Action/FormAction/index.jsx +++ b/src/containers/Action/FormAction/index.jsx @@ -28,6 +28,10 @@ export default class FormAction extends BaseForm { static path = '/'; + static policy = ''; + + static aliasPolicy = ''; + static allowed() { return Promise.resolve(); } diff --git a/src/containers/Action/ModalAction/index.jsx b/src/containers/Action/ModalAction/index.jsx index 5589fbba..bbe634e1 100644 --- a/src/containers/Action/ModalAction/index.jsx +++ b/src/containers/Action/ModalAction/index.jsx @@ -26,6 +26,10 @@ export default class ModalAction extends BaseForm { static isDanger = false; + static policy = ''; + + static aliasPolicy = ''; + get name() { return t('Edit'); } diff --git a/src/containers/Action/StepAction/index.jsx b/src/containers/Action/StepAction/index.jsx index e7308636..f4080f33 100644 --- a/src/containers/Action/StepAction/index.jsx +++ b/src/containers/Action/StepAction/index.jsx @@ -27,6 +27,10 @@ export default class StepAction extends StepForm { static path = '/'; + static policy = ''; + + static aliasPolicy = ''; + static get allowed() { return Promise.resolve(); } diff --git a/src/containers/List/index.jsx b/src/containers/List/index.jsx index 8ca0797c..1ecaf78a 100644 --- a/src/containers/List/index.jsx +++ b/src/containers/List/index.jsx @@ -124,6 +124,10 @@ export default class BaseList extends React.Component { return ''; } + get aliasPolicy() { + return ''; + } + get name() { return ''; } @@ -620,7 +624,13 @@ export default class BaseList extends React.Component { if (this.endpointError) { return; } - if (!checkItemPolicy({ policy: this.policy, actionName: this.name })) { + if ( + !checkItemPolicy({ + policy: this.policy, + aliasPolicy: this.aliasPolicy, + actionName: this.name, + }) + ) { const error = { message: t("You don't have access to get {name}.", { name: this.name.toLowerCase(), diff --git a/src/containers/TabDetail/index.jsx b/src/containers/TabDetail/index.jsx index 7b8f35b2..0e515314 100644 --- a/src/containers/TabDetail/index.jsx +++ b/src/containers/TabDetail/index.jsx @@ -62,6 +62,14 @@ export default class DetailBase extends React.Component { return this.props.match.params.id; } + get policy() { + return ''; + } + + get aliasPolicy() { + return ''; + } + get name() { return ''; } @@ -252,7 +260,13 @@ export default class DetailBase extends React.Component { getRouteProps = () => ({}); fetchDataWithPolicy = (silent, params) => { - if (!checkItemPolicy({ policy: this.policy, actionName: this.name })) { + if ( + !checkItemPolicy({ + policy: this.policy, + aliasPolicy: this.aliasPolicy, + actionName: this.name, + }) + ) { const error = { message: t("You don't have access to get {name}.", { name: this.name.toLowerCase(), diff --git a/src/locales/en.json b/src/locales/en.json index ee72d713..171b4db0 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -176,7 +176,6 @@ "Auto Scaling": "Auto Scaling", "Auto allocate mac address": "Auto allocate mac address", "Auto scaling feature will be enabled": "Auto scaling feature will be enabled", - "Automatic backup": "Automatic backup", "Automatically Assigned Address": "Automatically Assigned Address", "Automatically repair unhealhty nodes": "Automatically repair unhealhty nodes", "Availability Zone": "Availability Zone", @@ -1366,7 +1365,6 @@ "Management": "Management", "Management Reason": "Management Reason", "Manu": "Manu", - "Manual backup": "Manual backup", "Manual input": "Manual input", "Manually Assigned Address": "Manually Assigned Address", "Manually Specify": "Manually Specify", diff --git a/src/locales/zh.json b/src/locales/zh.json index 0e88e582..68c56160 100644 --- a/src/locales/zh.json +++ b/src/locales/zh.json @@ -176,7 +176,6 @@ "Auto Scaling": "自动缩放", "Auto allocate mac address": "自动分配MAC地址", "Auto scaling feature will be enabled": "将启用自动缩放功能", - "Automatic backup": "自动备份", "Automatically Assigned Address": "自动分配地址", "Automatically repair unhealhty nodes": "自动修复不健康的节点", "Availability Zone": "可用域", @@ -1366,7 +1365,6 @@ "Management": "维护", "Management Reason": "维护原因", "Manu": "手动", - "Manual backup": "手动备份", "Manual input": "手动输入", "Manually Assigned Address": "手动分配地址", "Manually Specify": "手动指定", diff --git a/src/pages/compute/containers/Hypervisors/Hypervisor/Detail/index.jsx b/src/pages/compute/containers/Hypervisors/Hypervisor/Detail/index.jsx index de430ff0..d90c45fb 100644 --- a/src/pages/compute/containers/Hypervisors/Hypervisor/Detail/index.jsx +++ b/src/pages/compute/containers/Hypervisors/Hypervisor/Detail/index.jsx @@ -25,7 +25,7 @@ export class HypervisorDetail extends Base { } get policy() { - return 'os_compute_api:os-hypervisors'; + return 'os_compute_api:os-hypervisors:show'; } get listUrl() { diff --git a/src/pages/compute/containers/Hypervisors/Hypervisor/index.jsx b/src/pages/compute/containers/Hypervisors/Hypervisor/index.jsx index 85294b77..f57c03ba 100644 --- a/src/pages/compute/containers/Hypervisors/Hypervisor/index.jsx +++ b/src/pages/compute/containers/Hypervisors/Hypervisor/index.jsx @@ -26,7 +26,7 @@ export class Hypervisors extends Base { } get policy() { - return 'os_compute_api:os-hypervisors'; + return 'os_compute_api:os-hypervisors:list'; } get name() { diff --git a/src/pages/compute/containers/Instance/Detail/ActionLog/index.jsx b/src/pages/compute/containers/Instance/Detail/ActionLog/index.jsx index 70add70f..523ddc7d 100644 --- a/src/pages/compute/containers/Instance/Detail/ActionLog/index.jsx +++ b/src/pages/compute/containers/Instance/Detail/ActionLog/index.jsx @@ -16,6 +16,10 @@ export class ActionLog extends Base { return 'request_id'; } + get policy() { + return 'os_compute_api:os-instance-actions:list'; + } + getColumns = () => actionColumn(this); get hideSearch() { diff --git a/src/pages/compute/containers/Instance/actions/DeleteIronic.jsx b/src/pages/compute/containers/Instance/actions/DeleteIronic.jsx index 4f0196b9..185e9135 100644 --- a/src/pages/compute/containers/Instance/actions/DeleteIronic.jsx +++ b/src/pages/compute/containers/Instance/actions/DeleteIronic.jsx @@ -37,7 +37,7 @@ export default class Delete extends ConfirmAction { return true; } - policy = 'os_compute_api:os-deferred-delete'; + policy = 'os_compute_api:os-deferred-delete:force'; allowedCheckFunc = (item) => { if (!item) { diff --git a/src/pages/compute/containers/Instance/actions/SoftDelete.jsx b/src/pages/compute/containers/Instance/actions/SoftDelete.jsx index 77296348..a973991f 100644 --- a/src/pages/compute/containers/Instance/actions/SoftDelete.jsx +++ b/src/pages/compute/containers/Instance/actions/SoftDelete.jsx @@ -52,7 +52,7 @@ export default class SoftDelete extends ConfirmAction { policy = [ 'os_compute_api:servers:delete', - 'os_compute_api:os-deferred-delete', + 'os_compute_api:os-deferred-delete:force', ]; onChangeType(choosed, data) { diff --git a/src/pages/configuration/containers/SystemInfo/CinderService/index.jsx b/src/pages/configuration/containers/SystemInfo/CinderService/index.jsx index 670d5ece..fd1403e5 100644 --- a/src/pages/configuration/containers/SystemInfo/CinderService/index.jsx +++ b/src/pages/configuration/containers/SystemInfo/CinderService/index.jsx @@ -32,6 +32,10 @@ export class CinderService extends Base { return t('cinder services'); } + get rowKey() { + return 'binary'; + } + get hasTab() { return true; } diff --git a/src/pages/configuration/containers/SystemInfo/HeatService.jsx b/src/pages/configuration/containers/SystemInfo/HeatService.jsx index f19a2092..04218a9f 100644 --- a/src/pages/configuration/containers/SystemInfo/HeatService.jsx +++ b/src/pages/configuration/containers/SystemInfo/HeatService.jsx @@ -24,7 +24,11 @@ export class HeatService extends Base { } get policy() { - return 'services:index'; + return 'service:index'; + } + + get aliasPolicy() { + return 'heat:service:index'; } get name() { diff --git a/src/pages/container-infra/containers/ClusterTemplates/Detail/index.jsx b/src/pages/container-infra/containers/ClusterTemplates/Detail/index.jsx index 1710c72d..590d2041 100644 --- a/src/pages/container-infra/containers/ClusterTemplates/Detail/index.jsx +++ b/src/pages/container-infra/containers/ClusterTemplates/Detail/index.jsx @@ -30,7 +30,7 @@ export class ClusterTemplateDetail extends Base { } get policy() { - return 'container-infra:clustertemplate:detail'; + return 'clustertemplate:detail'; } get actionConfigs() { diff --git a/src/pages/container-infra/containers/ClusterTemplates/actions/Delete.jsx b/src/pages/container-infra/containers/ClusterTemplates/actions/Delete.jsx index d7c1cf26..08948ce3 100644 --- a/src/pages/container-infra/containers/ClusterTemplates/actions/Delete.jsx +++ b/src/pages/container-infra/containers/ClusterTemplates/actions/Delete.jsx @@ -34,7 +34,7 @@ export default class Delete extends ConfirmAction { return t('Delete'); } - policy = 'container-infra:clustertemplate:delete'; + policy = 'clustertemplate:delete'; allowedCheckFunc = () => true; diff --git a/src/pages/container-infra/containers/ClusterTemplates/actions/Edit.jsx b/src/pages/container-infra/containers/ClusterTemplates/actions/Edit.jsx index 2145e56b..f839477b 100644 --- a/src/pages/container-infra/containers/ClusterTemplates/actions/Edit.jsx +++ b/src/pages/container-infra/containers/ClusterTemplates/actions/Edit.jsx @@ -29,7 +29,7 @@ export class Edit extends Base { return this.getRoutePath('clusterTemplate'); } - static policy = 'container-infra:clustertemplate:update'; + static policy = 'clustertemplate:update'; static path = (item) => { const key = 'containerInfraUpdateClusterTemplate'; diff --git a/src/pages/container-infra/containers/ClusterTemplates/actions/StepCreate/index.jsx b/src/pages/container-infra/containers/ClusterTemplates/actions/StepCreate/index.jsx index dd2bce12..e84e460c 100644 --- a/src/pages/container-infra/containers/ClusterTemplates/actions/StepCreate/index.jsx +++ b/src/pages/container-infra/containers/ClusterTemplates/actions/StepCreate/index.jsx @@ -31,7 +31,7 @@ export class StepCreate extends StepAction { static path = '/container-infra/cluster-template/create'; - static policy = 'container-infra:clustertemplate:create'; + static policy = 'clustertemplate:create'; static allowed() { return Promise.resolve(true); diff --git a/src/pages/container-infra/containers/ClusterTemplates/index.jsx b/src/pages/container-infra/containers/ClusterTemplates/index.jsx index f89cc899..5451f2ee 100644 --- a/src/pages/container-infra/containers/ClusterTemplates/index.jsx +++ b/src/pages/container-infra/containers/ClusterTemplates/index.jsx @@ -27,7 +27,7 @@ export class ClusterTemplates extends Base { } get policy() { - return 'container-infra:clustertemplate:get_all'; + return 'clustertemplate:get_all'; } get actionConfigs() { diff --git a/src/pages/container-infra/containers/Clusters/Detail/index.jsx b/src/pages/container-infra/containers/Clusters/Detail/index.jsx index bd4fec69..4e4b7b2d 100644 --- a/src/pages/container-infra/containers/Clusters/Detail/index.jsx +++ b/src/pages/container-infra/containers/Clusters/Detail/index.jsx @@ -34,7 +34,7 @@ export class ClustersDetail extends Base { } get policy() { - return 'container-infra:cluster:detail'; + return 'cluster:detail'; } get actionConfigs() { diff --git a/src/pages/container-infra/containers/Clusters/actions/Delete.jsx b/src/pages/container-infra/containers/Clusters/actions/Delete.jsx index 4a7dcc7d..c8271a80 100644 --- a/src/pages/container-infra/containers/Clusters/actions/Delete.jsx +++ b/src/pages/container-infra/containers/Clusters/actions/Delete.jsx @@ -36,7 +36,7 @@ export default class DeleteClusters extends ConfirmAction { return true; } - policy = 'container-infra:cluster:delete'; + policy = 'cluster:delete'; allowedCheckFunc = () => true; diff --git a/src/pages/container-infra/containers/Clusters/actions/Resize.jsx b/src/pages/container-infra/containers/Clusters/actions/Resize.jsx index 21148301..f962ddde 100644 --- a/src/pages/container-infra/containers/Clusters/actions/Resize.jsx +++ b/src/pages/container-infra/containers/Clusters/actions/Resize.jsx @@ -23,7 +23,7 @@ export class Resize extends ModalAction { static title = t('Resize Cluster'); - policy = 'container-infra:cluster:resize'; + policy = 'cluster:resize'; static allowed() { return Promise.resolve(true); diff --git a/src/pages/container-infra/containers/Clusters/actions/StepCreate/index.jsx b/src/pages/container-infra/containers/Clusters/actions/StepCreate/index.jsx index 901a3566..d1e1e61e 100644 --- a/src/pages/container-infra/containers/Clusters/actions/StepCreate/index.jsx +++ b/src/pages/container-infra/containers/Clusters/actions/StepCreate/index.jsx @@ -30,7 +30,7 @@ export class StepCreate extends StepAction { static path = '/container-infra/clusters/create'; - static policy = 'container-infra:cluster:create'; + static policy = 'cluster:create'; static allowed() { return Promise.resolve(true); diff --git a/src/pages/container-infra/containers/Clusters/index.jsx b/src/pages/container-infra/containers/Clusters/index.jsx index 19c244d2..bd367137 100644 --- a/src/pages/container-infra/containers/Clusters/index.jsx +++ b/src/pages/container-infra/containers/Clusters/index.jsx @@ -29,7 +29,7 @@ export class Clusters extends Base { } get policy() { - return 'container-infra:cluster:get_all'; + return 'cluster:get_all'; } get actionConfigs() { diff --git a/src/pages/container-service/containers/Capsules/Detail/index.jsx b/src/pages/container-service/containers/Capsules/Detail/index.jsx index 457c8707..509118c5 100644 --- a/src/pages/container-service/containers/Capsules/Detail/index.jsx +++ b/src/pages/container-service/containers/Capsules/Detail/index.jsx @@ -32,7 +32,7 @@ export class CapsulesDetail extends Base { } get policy() { - return 'container:capsule:get_one_all_projects'; + return 'capsule:get_one_all_projects'; } get detailInfos() { diff --git a/src/pages/container-service/containers/Capsules/actions/Create.jsx b/src/pages/container-service/containers/Capsules/actions/Create.jsx index abaf3117..d88e3afb 100644 --- a/src/pages/container-service/containers/Capsules/actions/Create.jsx +++ b/src/pages/container-service/containers/Capsules/actions/Create.jsx @@ -38,7 +38,7 @@ export class Create extends ModalAction { return t('Create Capsule'); } - static policy = 'container:capsule:create'; + static policy = 'capsule:create'; get formItems() { return [ diff --git a/src/pages/container-service/containers/Capsules/actions/Delete.jsx b/src/pages/container-service/containers/Capsules/actions/Delete.jsx index f2a5a11e..d87aeac3 100644 --- a/src/pages/container-service/containers/Capsules/actions/Delete.jsx +++ b/src/pages/container-service/containers/Capsules/actions/Delete.jsx @@ -34,7 +34,7 @@ export default class DeleteCapsule extends ConfirmAction { return true; } - policy = 'container:capsule:delete'; + policy = 'capsule:delete'; allowedCheckFunc = () => true; diff --git a/src/pages/container-service/containers/Capsules/index.jsx b/src/pages/container-service/containers/Capsules/index.jsx index 6d277c34..62d43879 100644 --- a/src/pages/container-service/containers/Capsules/index.jsx +++ b/src/pages/container-service/containers/Capsules/index.jsx @@ -29,7 +29,7 @@ export class Capsules extends Base { } get policy() { - return 'container:capsule:get_all'; + return 'capsule:get_all'; } get actionConfigs() { diff --git a/src/pages/container-service/containers/Containers/Detail/index.jsx b/src/pages/container-service/containers/Containers/Detail/index.jsx index bd085068..bccf61df 100644 --- a/src/pages/container-service/containers/Containers/Detail/index.jsx +++ b/src/pages/container-service/containers/Containers/Detail/index.jsx @@ -31,7 +31,7 @@ export class ContainerDetail extends Base { } get policy() { - return 'container:container:get_one'; + return 'container:get_one'; } get actionConfigs() { diff --git a/src/pages/container-service/containers/Containers/actions/Delete.jsx b/src/pages/container-service/containers/Containers/actions/Delete.jsx index 0e8d80b4..217c1544 100644 --- a/src/pages/container-service/containers/Containers/actions/Delete.jsx +++ b/src/pages/container-service/containers/Containers/actions/Delete.jsx @@ -37,7 +37,9 @@ export default class DeleteContainer extends ConfirmAction { return t('Delete'); } - policy = 'container:container:delete'; + policy = 'container:delete'; + + aliasPolicy = 'zun:container:delete'; allowedCheckFunc = (item) => checkItemAction(item, 'delete'); diff --git a/src/pages/container-service/containers/Containers/actions/Edit.jsx b/src/pages/container-service/containers/Containers/actions/Edit.jsx index ec3dfe6b..a7809eeb 100644 --- a/src/pages/container-service/containers/Containers/actions/Edit.jsx +++ b/src/pages/container-service/containers/Containers/actions/Edit.jsx @@ -22,7 +22,9 @@ export class EditContainer extends ModalAction { static buttonText = t('Edit'); - static policy = 'container:container:update'; + static policy = 'container:update'; + + static aliasPolicy = 'zun:container:update'; static allowed = (item) => checkItemAction(item, 'update'); diff --git a/src/pages/container-service/containers/Containers/actions/ExecuteCommand.jsx b/src/pages/container-service/containers/Containers/actions/ExecuteCommand.jsx index 5904dcf2..e28353ad 100644 --- a/src/pages/container-service/containers/Containers/actions/ExecuteCommand.jsx +++ b/src/pages/container-service/containers/Containers/actions/ExecuteCommand.jsx @@ -25,7 +25,9 @@ export class ExecuteCommandContainer extends ModalAction { static buttonText = t('Execute Command'); - static policy = 'container:container:execute'; + static policy = 'container:execute'; + + static aliasPolicy = 'zun:container:execute'; static allowed = (item) => checkItemAction(item, 'execute'); diff --git a/src/pages/container-service/containers/Containers/actions/ForceDelete.jsx b/src/pages/container-service/containers/Containers/actions/ForceDelete.jsx index a102998b..8651ec6d 100644 --- a/src/pages/container-service/containers/Containers/actions/ForceDelete.jsx +++ b/src/pages/container-service/containers/Containers/actions/ForceDelete.jsx @@ -31,7 +31,9 @@ export default class ForceDeleteContainer extends ConfirmAction { return t('Force Delete'); } - policy = 'container:container:delete_force'; + policy = 'container:delete_force'; + + aliasPolicy = 'zun:container:delete_force'; allowedCheckFunc = (item) => checkItemAction(item, 'delete_force'); diff --git a/src/pages/container-service/containers/Containers/actions/Kill.jsx b/src/pages/container-service/containers/Containers/actions/Kill.jsx index 9a8e7b0f..0ec6c713 100644 --- a/src/pages/container-service/containers/Containers/actions/Kill.jsx +++ b/src/pages/container-service/containers/Containers/actions/Kill.jsx @@ -22,7 +22,9 @@ export class KillContainer extends ModalAction { static buttonText = t('Kill'); - static policy = 'container:container:kill'; + static policy = 'container:kill'; + + static aliasPolicy = 'zun:container:kill'; static allowed = (item) => checkItemAction(item, 'kill'); diff --git a/src/pages/container-service/containers/Containers/actions/Pause.jsx b/src/pages/container-service/containers/Containers/actions/Pause.jsx index d96e74d5..b0bc616b 100644 --- a/src/pages/container-service/containers/Containers/actions/Pause.jsx +++ b/src/pages/container-service/containers/Containers/actions/Pause.jsx @@ -31,7 +31,9 @@ export default class PauseContainer extends ConfirmAction { return t('Pause'); } - policy = 'container:container:pause'; + policy = 'container:pause'; + + aliasPolicy = 'zun:container:pause'; allowedCheckFunc = (item) => checkItemAction(item, 'pause'); diff --git a/src/pages/container-service/containers/Containers/actions/Reboot.jsx b/src/pages/container-service/containers/Containers/actions/Reboot.jsx index fa2af641..f8222e48 100644 --- a/src/pages/container-service/containers/Containers/actions/Reboot.jsx +++ b/src/pages/container-service/containers/Containers/actions/Reboot.jsx @@ -31,7 +31,9 @@ export default class RebootContainer extends ConfirmAction { return t('Reboot'); } - policy = 'container:container:reboot'; + policy = 'container:reboot'; + + aliasPolicy = 'zun:container:reboot'; allowedCheckFunc = (item) => checkItemAction(item, 'reboot'); diff --git a/src/pages/container-service/containers/Containers/actions/Rebuild.jsx b/src/pages/container-service/containers/Containers/actions/Rebuild.jsx index 235cb207..48fdd88c 100644 --- a/src/pages/container-service/containers/Containers/actions/Rebuild.jsx +++ b/src/pages/container-service/containers/Containers/actions/Rebuild.jsx @@ -22,7 +22,9 @@ export class RebuildContainer extends ModalAction { static buttonText = t('Rebuild'); - static policy = 'container:container:rebuild'; + static policy = 'container:rebuild'; + + aliasPolicy = 'zun:container:rebuild'; static allowed = (item) => checkItemAction(item, 'rebuild'); diff --git a/src/pages/container-service/containers/Containers/actions/Start.jsx b/src/pages/container-service/containers/Containers/actions/Start.jsx index d6c605cd..2d491703 100644 --- a/src/pages/container-service/containers/Containers/actions/Start.jsx +++ b/src/pages/container-service/containers/Containers/actions/Start.jsx @@ -31,7 +31,9 @@ export default class StartContainer extends ConfirmAction { return t('Start'); } - policy = 'container:container:start'; + policy = 'container:start'; + + aliasPolicy = 'zun:container:start'; allowedCheckFunc = (item) => checkItemAction(item, 'start'); diff --git a/src/pages/container-service/containers/Containers/actions/StepCreate/index.jsx b/src/pages/container-service/containers/Containers/actions/StepCreate/index.jsx index beb40641..0c9507c1 100644 --- a/src/pages/container-service/containers/Containers/actions/StepCreate/index.jsx +++ b/src/pages/container-service/containers/Containers/actions/StepCreate/index.jsx @@ -30,7 +30,9 @@ export class StepCreate extends StepAction { static path = '/container/containers/create'; - static policy = 'container:container:create'; + static policy = 'container:create'; + + static aliasPolicy = 'zun:container:create'; static allowed() { return Promise.resolve(true); diff --git a/src/pages/container-service/containers/Containers/actions/Stop.jsx b/src/pages/container-service/containers/Containers/actions/Stop.jsx index a851e515..89b5d0bb 100644 --- a/src/pages/container-service/containers/Containers/actions/Stop.jsx +++ b/src/pages/container-service/containers/Containers/actions/Stop.jsx @@ -33,7 +33,9 @@ export default class StopContainer extends ConfirmAction { return t('Stop'); } - policy = 'container:container:stop'; + policy = 'container:stop'; + + aliasPolicy = 'zun:container:stop'; allowedCheckFunc = (item) => checkItemAction(item, 'stop'); diff --git a/src/pages/container-service/containers/Containers/actions/Unpause.jsx b/src/pages/container-service/containers/Containers/actions/Unpause.jsx index 07eba740..d583a1db 100644 --- a/src/pages/container-service/containers/Containers/actions/Unpause.jsx +++ b/src/pages/container-service/containers/Containers/actions/Unpause.jsx @@ -33,7 +33,9 @@ export default class UnpauseContainer extends ConfirmAction { return t('Unpause'); } - policy = 'container:container:unpause'; + policy = 'container:unpause'; + + aliasPolicy = 'zun:container:unpause'; allowedCheckFunc = (item) => checkItemAction(item, 'unpause'); diff --git a/src/pages/container-service/containers/Containers/index.jsx b/src/pages/container-service/containers/Containers/index.jsx index 978b03ca..364b928f 100644 --- a/src/pages/container-service/containers/Containers/index.jsx +++ b/src/pages/container-service/containers/Containers/index.jsx @@ -29,7 +29,7 @@ export class Containers extends Base { } get policy() { - return 'container:container:get_all'; + return 'container:get_all'; } get actionConfigs() { diff --git a/src/pages/container-service/containers/Hosts/Detail/index.jsx b/src/pages/container-service/containers/Hosts/Detail/index.jsx index 32b51980..5c831a69 100644 --- a/src/pages/container-service/containers/Hosts/Detail/index.jsx +++ b/src/pages/container-service/containers/Hosts/Detail/index.jsx @@ -29,7 +29,7 @@ export class HostsDetail extends Base { } get policy() { - return 'container:host:get'; + return 'host:get'; } get detailInfos() { diff --git a/src/pages/container-service/containers/Hosts/index.jsx b/src/pages/container-service/containers/Hosts/index.jsx index 66a5c458..bd1c515d 100644 --- a/src/pages/container-service/containers/Hosts/index.jsx +++ b/src/pages/container-service/containers/Hosts/index.jsx @@ -29,7 +29,7 @@ export class Hosts extends Base { } get policy() { - return 'container:host:get_all'; + return 'host:get_all'; } getColumns = () => [ diff --git a/src/pages/database/containers/Backups/Detail/index.jsx b/src/pages/database/containers/Backups/Detail/index.jsx index a1fbcfd1..380c0906 100644 --- a/src/pages/database/containers/Backups/Detail/index.jsx +++ b/src/pages/database/containers/Backups/Detail/index.jsx @@ -31,7 +31,7 @@ export class BackupsDetail extends Base { } get policy() { - return 'trove:backup:show'; + return 'backup:show'; } get detailInfos() { diff --git a/src/pages/database/containers/Backups/actions/Create.jsx b/src/pages/database/containers/Backups/actions/Create.jsx index 7b91af9e..60543432 100644 --- a/src/pages/database/containers/Backups/actions/Create.jsx +++ b/src/pages/database/containers/Backups/actions/Create.jsx @@ -39,7 +39,9 @@ export class Create extends ModalAction { return t('Create Backups'); } - static policy = 'trove:backup:create'; + static policy = 'backup:create'; + + static aliasPolicy = 'trove:backup:create'; static allowed() { return Promise.resolve(true); diff --git a/src/pages/database/containers/Backups/actions/Delete.jsx b/src/pages/database/containers/Backups/actions/Delete.jsx index f5647198..6da236ac 100644 --- a/src/pages/database/containers/Backups/actions/Delete.jsx +++ b/src/pages/database/containers/Backups/actions/Delete.jsx @@ -34,7 +34,7 @@ export default class Delete extends ConfirmAction { allowedCheckFunction = () => true; - policy = 'trove:instance:delete'; + policy = 'instance:delete'; onSubmit = (item) => { return globalBackupsStore.delete({ id: item.id }); diff --git a/src/pages/database/containers/Backups/index.jsx b/src/pages/database/containers/Backups/index.jsx index 9bff92ab..ce11b6a8 100644 --- a/src/pages/database/containers/Backups/index.jsx +++ b/src/pages/database/containers/Backups/index.jsx @@ -32,7 +32,7 @@ export class Backups extends Base { } get policy() { - return 'trove:backup:index'; + return 'backup:index'; } get searchFilters() { diff --git a/src/pages/database/containers/Configurations/Detail/index.jsx b/src/pages/database/containers/Configurations/Detail/index.jsx index 1342a37d..b6302b15 100644 --- a/src/pages/database/containers/Configurations/Detail/index.jsx +++ b/src/pages/database/containers/Configurations/Detail/index.jsx @@ -33,7 +33,7 @@ export class ConfigurationsDetail extends Base { } get policy() { - return 'trove:configuration:show'; + return 'configuration:show'; } get detailInfos() { diff --git a/src/pages/database/containers/Configurations/actions/Create.jsx b/src/pages/database/containers/Configurations/actions/Create.jsx index f95c2812..8c44b465 100644 --- a/src/pages/database/containers/Configurations/actions/Create.jsx +++ b/src/pages/database/containers/Configurations/actions/Create.jsx @@ -41,7 +41,7 @@ export class Create extends ModalAction { return t('Create Configurations'); } - static policy = 'trove:configuration:create'; + static policy = 'configuration:create'; static allowed() { return Promise.resolve(true); diff --git a/src/pages/database/containers/Configurations/actions/Delete.jsx b/src/pages/database/containers/Configurations/actions/Delete.jsx index c849af83..800654e8 100644 --- a/src/pages/database/containers/Configurations/actions/Delete.jsx +++ b/src/pages/database/containers/Configurations/actions/Delete.jsx @@ -34,7 +34,7 @@ export default class Delete extends ConfirmAction { allowedCheckFunction = () => true; - policy = 'trove:instance:delete'; + policy = 'instance:delete'; onSubmit = (item) => { return globalConfigurationsStore.delete({ id: item.id }); diff --git a/src/pages/database/containers/Configurations/index.jsx b/src/pages/database/containers/Configurations/index.jsx index b260371f..604cb6aa 100644 --- a/src/pages/database/containers/Configurations/index.jsx +++ b/src/pages/database/containers/Configurations/index.jsx @@ -32,7 +32,7 @@ export class Configurations extends Base { } get policy() { - return 'trove:configuration:index'; + return 'configuration:index'; } get searchFilters() { diff --git a/src/pages/database/containers/Instances/Detail/Backups.jsx b/src/pages/database/containers/Instances/Detail/Backups.jsx index 9adf47cb..bebc052f 100644 --- a/src/pages/database/containers/Instances/Detail/Backups.jsx +++ b/src/pages/database/containers/Instances/Detail/Backups.jsx @@ -26,7 +26,7 @@ export class Backups extends Base { } get policy() { - return 'trove:instance:backups'; + return 'instance:backups'; } getColumns = () => { diff --git a/src/pages/database/containers/Instances/Detail/DatabaseCreate.jsx b/src/pages/database/containers/Instances/Detail/DatabaseCreate.jsx index c84fd61b..33ba62b1 100644 --- a/src/pages/database/containers/Instances/Detail/DatabaseCreate.jsx +++ b/src/pages/database/containers/Instances/Detail/DatabaseCreate.jsx @@ -29,7 +29,7 @@ export class DatabaseCreate extends ModalAction { return t('Create Database'); } - static policy = 'trove:instance:extension:database:create'; + static policy = 'instance:extension:database:create'; static allowed() { return Promise.resolve(true); diff --git a/src/pages/database/containers/Instances/Detail/DatabaseDelete.jsx b/src/pages/database/containers/Instances/Detail/DatabaseDelete.jsx index 0a79f976..b73641dd 100644 --- a/src/pages/database/containers/Instances/Detail/DatabaseDelete.jsx +++ b/src/pages/database/containers/Instances/Detail/DatabaseDelete.jsx @@ -38,7 +38,7 @@ export default class DatabaseDelete extends ConfirmAction { allowedCheckFunction = () => true; - policy = 'trove:instance:extension:database:delete'; + policy = 'instance:extension:database:delete'; onSubmit = (item) => { const { id } = this.containerProps.detail; diff --git a/src/pages/database/containers/Instances/Detail/Databases.jsx b/src/pages/database/containers/Instances/Detail/Databases.jsx index fdf164e9..30714ab9 100644 --- a/src/pages/database/containers/Instances/Detail/Databases.jsx +++ b/src/pages/database/containers/Instances/Detail/Databases.jsx @@ -31,6 +31,10 @@ export class Databases extends Base { } get policy() { + return 'instance:detail'; + } + + get aliasPolicy() { return 'trove:instance:detail'; } diff --git a/src/pages/database/containers/Instances/Detail/Logs.jsx b/src/pages/database/containers/Instances/Detail/Logs.jsx index 70c8b487..aabefe7e 100644 --- a/src/pages/database/containers/Instances/Detail/Logs.jsx +++ b/src/pages/database/containers/Instances/Detail/Logs.jsx @@ -26,7 +26,7 @@ export class Logs extends Base { } get policy() { - return 'trove:instance:guest_log_list'; + return 'instance:guest_log_list'; } getColumns = () => { diff --git a/src/pages/database/containers/Instances/Detail/UserCreate.jsx b/src/pages/database/containers/Instances/Detail/UserCreate.jsx index 198e4275..e64d736a 100644 --- a/src/pages/database/containers/Instances/Detail/UserCreate.jsx +++ b/src/pages/database/containers/Instances/Detail/UserCreate.jsx @@ -33,7 +33,7 @@ export class UserCreate extends ModalAction { return t('Create User'); } - static policy = 'trove:instance:extension:user:create'; + static policy = 'instance:extension:user:create'; static allowed() { return Promise.resolve(true); diff --git a/src/pages/database/containers/Instances/Detail/UserDelete.jsx b/src/pages/database/containers/Instances/Detail/UserDelete.jsx index 3cfeaa81..eff4f8ab 100644 --- a/src/pages/database/containers/Instances/Detail/UserDelete.jsx +++ b/src/pages/database/containers/Instances/Detail/UserDelete.jsx @@ -38,7 +38,7 @@ export default class UserDelete extends ConfirmAction { allowedCheckFunction = () => true; - policy = 'trove:instance:extension:user:delete'; + policy = 'instance:extension:user:delete'; onSubmit = (item) => { const { id } = this.containerProps.detail; diff --git a/src/pages/database/containers/Instances/Detail/Users.jsx b/src/pages/database/containers/Instances/Detail/Users.jsx index 6e451f54..9ae02005 100644 --- a/src/pages/database/containers/Instances/Detail/Users.jsx +++ b/src/pages/database/containers/Instances/Detail/Users.jsx @@ -38,7 +38,7 @@ export class Users extends Base { } get policy() { - return 'trove:instance:extension:user:index'; + return 'instance:extension:user:index'; } get hideCustom() { diff --git a/src/pages/database/containers/Instances/Detail/index.jsx b/src/pages/database/containers/Instances/Detail/index.jsx index dd309ed0..e18a789c 100644 --- a/src/pages/database/containers/Instances/Detail/index.jsx +++ b/src/pages/database/containers/Instances/Detail/index.jsx @@ -33,6 +33,10 @@ export class InstancesDetail extends Base { } get policy() { + return 'instance:detail'; + } + + get aliasPolicy() { return 'trove:instance:detail'; } diff --git a/src/pages/database/containers/Instances/actions/Delete.jsx b/src/pages/database/containers/Instances/actions/Delete.jsx index 4a1d6c79..37bd1112 100644 --- a/src/pages/database/containers/Instances/actions/Delete.jsx +++ b/src/pages/database/containers/Instances/actions/Delete.jsx @@ -34,7 +34,7 @@ export default class Delete extends ConfirmAction { allowedCheckFunction = () => true; - policy = 'trove:instance:delete'; + policy = 'instance:delete'; onSubmit = (item) => { return globalInstancesStore.delete({ id: item.id }); diff --git a/src/pages/database/containers/Instances/actions/StepCreate/index.jsx b/src/pages/database/containers/Instances/actions/StepCreate/index.jsx index 39c313f5..6d232811 100644 --- a/src/pages/database/containers/Instances/actions/StepCreate/index.jsx +++ b/src/pages/database/containers/Instances/actions/StepCreate/index.jsx @@ -31,7 +31,7 @@ export class StepCreate extends StepAction { static path = '/database/instances/create'; - static policy = 'trove:instance:create'; + static policy = 'instance:create'; static allowed() { return Promise.resolve(true); diff --git a/src/pages/database/containers/Instances/index.jsx b/src/pages/database/containers/Instances/index.jsx index 82386570..ffd616a0 100644 --- a/src/pages/database/containers/Instances/index.jsx +++ b/src/pages/database/containers/Instances/index.jsx @@ -33,6 +33,10 @@ export class Instances extends Base { } get policy() { + return 'instance:index'; + } + + get aliasPolicy() { return 'trove:instance:index'; } diff --git a/src/pages/heat/containers/Stack/Detail/Event.jsx b/src/pages/heat/containers/Stack/Detail/Event.jsx index 3cdb5c30..e9df8d67 100644 --- a/src/pages/heat/containers/Stack/Detail/Event.jsx +++ b/src/pages/heat/containers/Stack/Detail/Event.jsx @@ -27,6 +27,10 @@ export class Event extends Base { return 'events:index'; } + get aliasPolicy() { + return 'heat:events:index'; + } + get name() { return t('stack events'); } diff --git a/src/pages/management/containers/RecycleBin/actions/Delete.jsx b/src/pages/management/containers/RecycleBin/actions/Delete.jsx index 72d8018f..528bc395 100644 --- a/src/pages/management/containers/RecycleBin/actions/Delete.jsx +++ b/src/pages/management/containers/RecycleBin/actions/Delete.jsx @@ -36,7 +36,7 @@ export default class Delete extends ConfirmAction { return true; } - policy = 'os_compute_api:os-deferred-delete'; + policy = 'os_compute_api:os-deferred-delete:force'; allowedCheckFunc = (item) => { if (!item) { diff --git a/src/pages/management/containers/RecycleBin/actions/Recover.js b/src/pages/management/containers/RecycleBin/actions/Recover.jsx similarity index 95% rename from src/pages/management/containers/RecycleBin/actions/Recover.js rename to src/pages/management/containers/RecycleBin/actions/Recover.jsx index 99b7a422..65807681 100644 --- a/src/pages/management/containers/RecycleBin/actions/Recover.js +++ b/src/pages/management/containers/RecycleBin/actions/Recover.jsx @@ -36,7 +36,7 @@ export default class Recover extends ConfirmAction { return true; } - policy = 'os_compute_api:os-deferred-delete'; + policy = 'os_compute_api:os-deferred-delete:restore'; allowedCheckFunc = (item) => { if (!item) { diff --git a/src/pages/network/containers/Certificate/Certificate.jsx b/src/pages/network/containers/Certificate/Certificate.jsx index 7ef52e99..ac86909c 100644 --- a/src/pages/network/containers/Certificate/Certificate.jsx +++ b/src/pages/network/containers/Certificate/Certificate.jsx @@ -36,6 +36,10 @@ export class Certificate extends Base { } get policy() { + return ['containers:get', 'secrets:get']; + } + + get aliasPolicy() { return ['barbican:containers:get', 'barbican:secrets:get']; } diff --git a/src/pages/network/containers/Certificate/Detail/Container/index.jsx b/src/pages/network/containers/Certificate/Detail/Container/index.jsx index f940cbd4..55564b45 100644 --- a/src/pages/network/containers/Certificate/Detail/Container/index.jsx +++ b/src/pages/network/containers/Certificate/Detail/Container/index.jsx @@ -25,6 +25,10 @@ export class Detail extends Base { } get policy() { + return 'container:get'; + } + + get aliasPolicy() { return 'barbican:container:get'; } diff --git a/src/pages/network/containers/Certificate/Detail/Secret/index.jsx b/src/pages/network/containers/Certificate/Detail/Secret/index.jsx index a86f2cc5..1697744e 100644 --- a/src/pages/network/containers/Certificate/Detail/Secret/index.jsx +++ b/src/pages/network/containers/Certificate/Detail/Secret/index.jsx @@ -25,7 +25,7 @@ export class Detail extends Base { } get policy() { - return 'barbican:secret:get'; + return 'secret:get'; } get name() { diff --git a/src/pages/network/containers/Certificate/actions/Create.jsx b/src/pages/network/containers/Certificate/actions/Create.jsx index d4a8b0ef..0b33402f 100644 --- a/src/pages/network/containers/Certificate/actions/Create.jsx +++ b/src/pages/network/containers/Certificate/actions/Create.jsx @@ -30,7 +30,7 @@ export class CreateAction extends ModalAction { static title = t('Create Certificate'); - static policy = ['barbican:secrets:post', 'barbican:containers:post']; + static policy = ['secrets:post', 'containers:post']; init() { this.store = globalContainersStore; diff --git a/src/pages/network/containers/Certificate/actions/DeleteContainer.jsx b/src/pages/network/containers/Certificate/actions/DeleteContainer.jsx index 271e6e01..2b339f7c 100644 --- a/src/pages/network/containers/Certificate/actions/DeleteContainer.jsx +++ b/src/pages/network/containers/Certificate/actions/DeleteContainer.jsx @@ -36,7 +36,9 @@ export default class DeleteAction extends ConfirmAction { return t('delete certificate'); } - policy = ['barbican:secret:delete', 'barbican:container:delete']; + policy = ['secret:delete', 'container:delete']; + + aliasPolicy = ['barbican:secret:delete', 'barbican:container:delete']; allowedCheckFunc = (item) => !item.listener; diff --git a/src/pages/network/containers/Certificate/actions/DeleteSecret.jsx b/src/pages/network/containers/Certificate/actions/DeleteSecret.jsx index bcaa8c29..f37288ac 100644 --- a/src/pages/network/containers/Certificate/actions/DeleteSecret.jsx +++ b/src/pages/network/containers/Certificate/actions/DeleteSecret.jsx @@ -36,7 +36,7 @@ export default class DeleteAction extends ConfirmAction { return t('delete certificate'); } - policy = 'barbican:secret:delete'; + policy = 'secret:delete'; allowedCheckFunc = (item) => !item.listener; diff --git a/src/pages/network/containers/QoSPolicy/Detail/index.jsx b/src/pages/network/containers/QoSPolicy/Detail/index.jsx index 4b56f9b3..c378abdd 100644 --- a/src/pages/network/containers/QoSPolicy/Detail/index.jsx +++ b/src/pages/network/containers/QoSPolicy/Detail/index.jsx @@ -28,6 +28,10 @@ export class QoSPolicyDetail extends Base { return 'get_policy'; } + get aliasPolicy() { + return 'neutron:get_policy'; + } + get listUrl() { return this.getRoutePath('networkQos'); } diff --git a/src/pages/network/containers/QoSPolicy/QoSPolicy.js b/src/pages/network/containers/QoSPolicy/QoSPolicy.jsx similarity index 98% rename from src/pages/network/containers/QoSPolicy/QoSPolicy.js rename to src/pages/network/containers/QoSPolicy/QoSPolicy.jsx index b3529c6a..8b19ad12 100644 --- a/src/pages/network/containers/QoSPolicy/QoSPolicy.js +++ b/src/pages/network/containers/QoSPolicy/QoSPolicy.jsx @@ -66,6 +66,10 @@ export class QoSPolicy extends Base { return 'get_policy'; } + get aliasPolicy() { + return 'neutron:get_policy'; + } + get name() { return t('QoS policies'); } diff --git a/src/pages/network/containers/QoSPolicy/actions/Create.jsx b/src/pages/network/containers/QoSPolicy/actions/Create.jsx index 2ced45f9..8f8bac90 100644 --- a/src/pages/network/containers/QoSPolicy/actions/Create.jsx +++ b/src/pages/network/containers/QoSPolicy/actions/Create.jsx @@ -22,14 +22,14 @@ export class Create extends ModalAction { static title = t('Create QoS Policy'); - policy = () => 'create_policy'; - get name() { return t('Create QoS Policy'); } static policy = 'create_policy'; + static aliasPolicy = 'neutron:create_policy'; + static allowed = () => Promise.resolve(true); init() { diff --git a/src/pages/network/containers/QoSPolicy/actions/Delete.jsx b/src/pages/network/containers/QoSPolicy/actions/Delete.jsx index 3446f1a6..c5902a23 100644 --- a/src/pages/network/containers/QoSPolicy/actions/Delete.jsx +++ b/src/pages/network/containers/QoSPolicy/actions/Delete.jsx @@ -38,6 +38,8 @@ export default class DeleteAction extends ConfirmAction { policy = 'delete_policy'; + aliasPolicy = 'neutron:delete_policy'; + allowedCheckFunc = (item) => { if (!item) { return true; diff --git a/src/pages/network/containers/QoSPolicy/actions/Edit.jsx b/src/pages/network/containers/QoSPolicy/actions/Edit.jsx index 2e2a689a..d046f678 100644 --- a/src/pages/network/containers/QoSPolicy/actions/Edit.jsx +++ b/src/pages/network/containers/QoSPolicy/actions/Edit.jsx @@ -29,6 +29,8 @@ export class Edit extends ModalAction { static policy = 'update_policy'; + static aliasPolicy = 'neutron:update_policy'; + static allowed = () => Promise.resolve(true); init() { diff --git a/src/pages/network/containers/VPN/EndpointGroup/actions/Create.js b/src/pages/network/containers/VPN/EndpointGroup/actions/Create.js index c99ba30f..02297a29 100644 --- a/src/pages/network/containers/VPN/EndpointGroup/actions/Create.js +++ b/src/pages/network/containers/VPN/EndpointGroup/actions/Create.js @@ -35,6 +35,8 @@ export class Create extends ModalAction { static policy = 'create_endpoint_group'; + static aliasPolicy = 'neutron:create_endpoint_group'; + static allowed = () => Promise.resolve(true); get name() { diff --git a/src/pages/network/containers/VPN/EndpointGroup/actions/Delete.jsx b/src/pages/network/containers/VPN/EndpointGroup/actions/Delete.jsx index 3a6310b7..2ea5d8a0 100644 --- a/src/pages/network/containers/VPN/EndpointGroup/actions/Delete.jsx +++ b/src/pages/network/containers/VPN/EndpointGroup/actions/Delete.jsx @@ -41,6 +41,8 @@ export default class DeleteAction extends ConfirmAction { policy = 'delete_endpoint_group'; + aliasPolicy = 'neutron:delete_endpoint_group'; + allowedCheckFunc = (item) => { if (!item) { return true; diff --git a/src/pages/network/containers/VPN/EndpointGroup/actions/Edit.js b/src/pages/network/containers/VPN/EndpointGroup/actions/Edit.js index c15367a6..ef1e7477 100644 --- a/src/pages/network/containers/VPN/EndpointGroup/actions/Edit.js +++ b/src/pages/network/containers/VPN/EndpointGroup/actions/Edit.js @@ -25,6 +25,8 @@ export class Edit extends ModalAction { static policy = 'update_endpoint_group'; + static aliasPolicy = 'neutron:update_endpoint_group'; + static allowed = () => Promise.resolve(true); get defaultValue() { diff --git a/src/pages/network/containers/VPN/EndpointGroup/index.jsx b/src/pages/network/containers/VPN/EndpointGroup/index.jsx index 62572e32..ce485124 100644 --- a/src/pages/network/containers/VPN/EndpointGroup/index.jsx +++ b/src/pages/network/containers/VPN/EndpointGroup/index.jsx @@ -40,6 +40,10 @@ export class EndpointGroup extends Base { return 'get_endpoint_group'; } + get aliasPolicy() { + return 'neutron:get_endpoint_group'; + } + get name() { return t('vpn endpoint groups'); } diff --git a/src/pages/share/containers/Share/Detail/AccessRule/actions/Create.jsx b/src/pages/share/containers/Share/Detail/AccessRule/actions/Create.jsx index 70014b83..bfd56c1b 100644 --- a/src/pages/share/containers/Share/Detail/AccessRule/actions/Create.jsx +++ b/src/pages/share/containers/Share/Detail/AccessRule/actions/Create.jsx @@ -51,7 +51,7 @@ export class Create extends ModalAction { this.store = globalShareAccessRuleStore; } - static policy = 'manila:share:allow_access'; + static policy = 'share:allow_access'; static allowed = () => Promise.resolve(true); diff --git a/src/pages/share/containers/Share/Detail/AccessRule/actions/Delete.jsx b/src/pages/share/containers/Share/Detail/AccessRule/actions/Delete.jsx index 4c737b79..cb387b80 100644 --- a/src/pages/share/containers/Share/Detail/AccessRule/actions/Delete.jsx +++ b/src/pages/share/containers/Share/Detail/AccessRule/actions/Delete.jsx @@ -36,7 +36,7 @@ export default class Delete extends ConfirmAction { return t('Delete Share Access Rule'); } - policy = 'manila:share:deny_access'; + policy = 'share:deny_access'; onSubmit = (data, containerProps) => { const { detail: { id } = {} } = containerProps; diff --git a/src/pages/share/containers/Share/Detail/AccessRule/actions/ManageMetadata.jsx b/src/pages/share/containers/Share/Detail/AccessRule/actions/ManageMetadata.jsx index a98b5853..62454dad 100644 --- a/src/pages/share/containers/Share/Detail/AccessRule/actions/ManageMetadata.jsx +++ b/src/pages/share/containers/Share/Detail/AccessRule/actions/ManageMetadata.jsx @@ -39,8 +39,8 @@ export class ManageMetadata extends ModalAction { } static policy = [ - 'manila:share_access_metadata:update', - 'manila:share_access_metadata:delete', + 'share_access_metadata:update', + 'share_access_metadata:delete', ]; static allowed = () => Promise.resolve(true); diff --git a/src/pages/share/containers/Share/Detail/AccessRule/index.jsx b/src/pages/share/containers/Share/Detail/AccessRule/index.jsx index 72a0753f..b652c5fb 100644 --- a/src/pages/share/containers/Share/Detail/AccessRule/index.jsx +++ b/src/pages/share/containers/Share/Detail/AccessRule/index.jsx @@ -25,7 +25,7 @@ export class ShareAccessRule extends Base { } get policy() { - return 'manila:share_access_rule:index'; + return 'share_access_rule:index'; } get name() { diff --git a/src/pages/share/containers/Share/Detail/Metadata/actions/Create.jsx b/src/pages/share/containers/Share/Detail/Metadata/actions/Create.jsx index 700be4bb..85cec456 100644 --- a/src/pages/share/containers/Share/Detail/Metadata/actions/Create.jsx +++ b/src/pages/share/containers/Share/Detail/Metadata/actions/Create.jsx @@ -25,7 +25,7 @@ export class Create extends ModalAction { return t('Create Share Metadata'); } - static policy = 'manila:share:update_share_metadata'; + static policy = 'share:update_share_metadata'; static allowed = () => Promise.resolve(true); diff --git a/src/pages/share/containers/Share/Detail/Metadata/actions/Delete.jsx b/src/pages/share/containers/Share/Detail/Metadata/actions/Delete.jsx index 24a5ec21..8913aca4 100644 --- a/src/pages/share/containers/Share/Detail/Metadata/actions/Delete.jsx +++ b/src/pages/share/containers/Share/Detail/Metadata/actions/Delete.jsx @@ -36,7 +36,7 @@ export default class Delete extends ConfirmAction { return t('Delete Share Metadata'); } - policy = 'manila:share:delete_share_metadata'; + policy = 'share:delete_share_metadata'; allowedCheckFunc = () => true; diff --git a/src/pages/share/containers/Share/Detail/Metadata/actions/Edit.jsx b/src/pages/share/containers/Share/Detail/Metadata/actions/Edit.jsx index 7c4170f3..97ca70a4 100644 --- a/src/pages/share/containers/Share/Detail/Metadata/actions/Edit.jsx +++ b/src/pages/share/containers/Share/Detail/Metadata/actions/Edit.jsx @@ -40,7 +40,7 @@ export class Edit extends ModalAction { return defaultValue; } - static policy = 'manila:share:update_share_metadata'; + static policy = 'share:update_share_metadata'; static allowed = () => Promise.resolve(true); diff --git a/src/pages/share/containers/Share/Detail/Metadata/index.jsx b/src/pages/share/containers/Share/Detail/Metadata/index.jsx index 92a4a507..310ab909 100644 --- a/src/pages/share/containers/Share/Detail/Metadata/index.jsx +++ b/src/pages/share/containers/Share/Detail/Metadata/index.jsx @@ -24,7 +24,7 @@ export class Metadata extends Base { } get policy() { - return 'manila:share:get_share_metadata'; + return 'share:get_share_metadata'; } get name() { diff --git a/src/pages/share/containers/Share/Detail/index.jsx b/src/pages/share/containers/Share/Detail/index.jsx index 727c4c64..827ff49c 100644 --- a/src/pages/share/containers/Share/Detail/index.jsx +++ b/src/pages/share/containers/Share/Detail/index.jsx @@ -27,7 +27,7 @@ export class Detail extends Base { } get policy() { - return 'manila:share:get'; + return 'share:get'; } get listUrl() { diff --git a/src/pages/share/containers/Share/actions/Create.jsx b/src/pages/share/containers/Share/actions/Create.jsx index 0f0c5553..39f50b01 100644 --- a/src/pages/share/containers/Share/actions/Create.jsx +++ b/src/pages/share/containers/Share/actions/Create.jsx @@ -70,7 +70,7 @@ export class Create extends FormAction { this.state.shareGroups = []; } - static policy = 'manila:share:create'; + static policy = 'share:create'; static allowed = () => Promise.resolve(true); diff --git a/src/pages/share/containers/Share/actions/Delete.jsx b/src/pages/share/containers/Share/actions/Delete.jsx index e94073a3..f6e52b44 100644 --- a/src/pages/share/containers/Share/actions/Delete.jsx +++ b/src/pages/share/containers/Share/actions/Delete.jsx @@ -36,7 +36,7 @@ export default class Delete extends ConfirmAction { return t('Delete Share'); } - policy = 'manila:share:delete'; + policy = 'share:delete'; allowedCheckFunc = (item) => { return this.isAdminPage || item.isMine; diff --git a/src/pages/share/containers/Share/actions/Edit.jsx b/src/pages/share/containers/Share/actions/Edit.jsx index 1b081131..67cd2b24 100644 --- a/src/pages/share/containers/Share/actions/Edit.jsx +++ b/src/pages/share/containers/Share/actions/Edit.jsx @@ -32,7 +32,7 @@ export class Edit extends ModalAction { return value; } - static policy = 'manila:share:update'; + static policy = 'share:update'; static allowed = (item) => Promise.resolve(item.isMine); diff --git a/src/pages/share/containers/Share/actions/Extend.jsx b/src/pages/share/containers/Share/actions/Extend.jsx index bd93fd21..65408f87 100644 --- a/src/pages/share/containers/Share/actions/Extend.jsx +++ b/src/pages/share/containers/Share/actions/Extend.jsx @@ -34,7 +34,7 @@ export class ExtendShare extends ModalAction { return value; } - static policy = 'manila:share:extend'; + static policy = 'share:extend'; static allowed = (item) => Promise.resolve(item.isMine); diff --git a/src/pages/share/containers/Share/actions/ManageAccessRule.jsx b/src/pages/share/containers/Share/actions/ManageAccessRule.jsx index 3b1681f3..1cbe29d8 100644 --- a/src/pages/share/containers/Share/actions/ManageAccessRule.jsx +++ b/src/pages/share/containers/Share/actions/ManageAccessRule.jsx @@ -36,7 +36,7 @@ export class ManageAccessRule extends FormAction { return t('Manage Access Rule'); } - static policy = 'manila:share_access_rule:index'; + static policy = 'share_access_rule:index'; static allowed = (item) => Promise.resolve(item.isMine); } diff --git a/src/pages/share/containers/Share/actions/ManageMetadata.jsx b/src/pages/share/containers/Share/actions/ManageMetadata.jsx index bd5f82e7..b911c9a0 100644 --- a/src/pages/share/containers/Share/actions/ManageMetadata.jsx +++ b/src/pages/share/containers/Share/actions/ManageMetadata.jsx @@ -36,7 +36,7 @@ export class ManageMetadata extends FormAction { return t('Manage Metadata'); } - static policy = 'manila:share:update_share_metadata'; + static policy = 'share:update_share_metadata'; static allowed = (item) => Promise.resolve(item.isMine); } diff --git a/src/pages/share/containers/Share/actions/ResetStatus.jsx b/src/pages/share/containers/Share/actions/ResetStatus.jsx index 79fccd60..f9489c56 100644 --- a/src/pages/share/containers/Share/actions/ResetStatus.jsx +++ b/src/pages/share/containers/Share/actions/ResetStatus.jsx @@ -36,7 +36,7 @@ export class ResetStatus extends ModalAction { return value; } - static policy = 'manila:share:reset_status'; + static policy = 'share:reset_status'; static allowed = () => Promise.resolve(true); diff --git a/src/pages/share/containers/Share/index.jsx b/src/pages/share/containers/Share/index.jsx index cd72a217..f25943ea 100644 --- a/src/pages/share/containers/Share/index.jsx +++ b/src/pages/share/containers/Share/index.jsx @@ -25,7 +25,7 @@ export class Share extends Base { } get policy() { - return 'manila:share:get_all'; + return 'share:get_all'; } get name() { diff --git a/src/pages/share/containers/ShareGroup/Detail/index.jsx b/src/pages/share/containers/ShareGroup/Detail/index.jsx index d10780f8..9f03c46f 100644 --- a/src/pages/share/containers/ShareGroup/Detail/index.jsx +++ b/src/pages/share/containers/ShareGroup/Detail/index.jsx @@ -26,7 +26,7 @@ export class Detail extends Base { } get policy() { - return 'manila:share_group:get'; + return 'share_group:get'; } get listUrl() { diff --git a/src/pages/share/containers/ShareGroup/actions/Create.jsx b/src/pages/share/containers/ShareGroup/actions/Create.jsx index 76327c6f..fbb541fa 100644 --- a/src/pages/share/containers/ShareGroup/actions/Create.jsx +++ b/src/pages/share/containers/ShareGroup/actions/Create.jsx @@ -56,7 +56,7 @@ export class Create extends ModalAction { this.state.showNetworks = false; } - static policy = 'manila:share_group:create'; + static policy = 'share_group:create'; static allowed = () => Promise.resolve(true); diff --git a/src/pages/share/containers/ShareGroup/actions/Delete.jsx b/src/pages/share/containers/ShareGroup/actions/Delete.jsx index d854f159..11addd28 100644 --- a/src/pages/share/containers/ShareGroup/actions/Delete.jsx +++ b/src/pages/share/containers/ShareGroup/actions/Delete.jsx @@ -36,7 +36,7 @@ export default class Delete extends ConfirmAction { return t('Delete Share Group'); } - policy = 'manila:share_group:delete'; + policy = 'share_group:delete'; onSubmit = (data) => globalShareGroupStore.delete(data); } diff --git a/src/pages/share/containers/ShareGroup/actions/Edit.jsx b/src/pages/share/containers/ShareGroup/actions/Edit.jsx index 30ee00b0..fcda127c 100644 --- a/src/pages/share/containers/ShareGroup/actions/Edit.jsx +++ b/src/pages/share/containers/ShareGroup/actions/Edit.jsx @@ -30,7 +30,7 @@ export class Edit extends ModalAction { return value; } - static policy = 'manila:share_group:update'; + static policy = 'share_group:update'; static allowed = () => Promise.resolve(true); diff --git a/src/pages/share/containers/ShareGroup/index.jsx b/src/pages/share/containers/ShareGroup/index.jsx index 869da756..a95b9888 100644 --- a/src/pages/share/containers/ShareGroup/index.jsx +++ b/src/pages/share/containers/ShareGroup/index.jsx @@ -30,7 +30,7 @@ export class ShareGroup extends Base { } get policy() { - return 'manila:share_group:get_all'; + return 'share_group:get_all'; } get name() { diff --git a/src/pages/share/containers/ShareGroupType/Detail/ExtraSpec/actions/Create.jsx b/src/pages/share/containers/ShareGroupType/Detail/ExtraSpec/actions/Create.jsx index 218ccbdd..2404033e 100644 --- a/src/pages/share/containers/ShareGroupType/Detail/ExtraSpec/actions/Create.jsx +++ b/src/pages/share/containers/ShareGroupType/Detail/ExtraSpec/actions/Create.jsx @@ -25,7 +25,7 @@ export class Create extends ModalAction { return t('Create Extra Specs'); } - static policy = 'manila:share_group_types_spec:create'; + static policy = 'share_group_types_spec:create'; static allowed = () => Promise.resolve(true); diff --git a/src/pages/share/containers/ShareGroupType/Detail/ExtraSpec/actions/Delete.jsx b/src/pages/share/containers/ShareGroupType/Detail/ExtraSpec/actions/Delete.jsx index 9c93c327..1ba51bfb 100644 --- a/src/pages/share/containers/ShareGroupType/Detail/ExtraSpec/actions/Delete.jsx +++ b/src/pages/share/containers/ShareGroupType/Detail/ExtraSpec/actions/Delete.jsx @@ -36,7 +36,7 @@ export default class Delete extends ConfirmAction { return t('Delete Extra Specs'); } - policy = 'manila:share_group_types_spec:delete'; + policy = 'share_group_types_spec:delete'; allowedCheckFunc = () => true; diff --git a/src/pages/share/containers/ShareGroupType/Detail/ExtraSpec/actions/Edit.jsx b/src/pages/share/containers/ShareGroupType/Detail/ExtraSpec/actions/Edit.jsx index 4ad4b91e..f7ec3c0a 100644 --- a/src/pages/share/containers/ShareGroupType/Detail/ExtraSpec/actions/Edit.jsx +++ b/src/pages/share/containers/ShareGroupType/Detail/ExtraSpec/actions/Edit.jsx @@ -40,7 +40,7 @@ export class Edit extends ModalAction { return defaultValue; } - static policy = 'manila:share_group_types_spec:update'; + static policy = 'share_group_types_spec:update'; static allowed = () => Promise.resolve(true); diff --git a/src/pages/share/containers/ShareGroupType/Detail/ExtraSpec/index.jsx b/src/pages/share/containers/ShareGroupType/Detail/ExtraSpec/index.jsx index 91605fad..77cb44d8 100644 --- a/src/pages/share/containers/ShareGroupType/Detail/ExtraSpec/index.jsx +++ b/src/pages/share/containers/ShareGroupType/Detail/ExtraSpec/index.jsx @@ -23,7 +23,7 @@ export class ExtraSpecs extends Base { } get policy() { - return 'manila:share_group_types_spec:index'; + return 'share_group_types_spec:index'; } get name() { diff --git a/src/pages/share/containers/ShareGroupType/Detail/index.jsx b/src/pages/share/containers/ShareGroupType/Detail/index.jsx index b80bc325..95a3aef0 100644 --- a/src/pages/share/containers/ShareGroupType/Detail/index.jsx +++ b/src/pages/share/containers/ShareGroupType/Detail/index.jsx @@ -24,7 +24,7 @@ export class Detail extends Base { } get policy() { - return 'manila:share_group_type:show'; + return 'share_group_type:show'; } get listUrl() { diff --git a/src/pages/share/containers/ShareGroupType/actions/Create.jsx b/src/pages/share/containers/ShareGroupType/actions/Create.jsx index b8c53316..8a3c9721 100644 --- a/src/pages/share/containers/ShareGroupType/actions/Create.jsx +++ b/src/pages/share/containers/ShareGroupType/actions/Create.jsx @@ -50,7 +50,7 @@ export class Create extends ModalAction { return this.projectStore.list.data || []; } - static policy = 'manila:share_group_type:create'; + static policy = 'share_group_type:create'; static allowed = () => Promise.resolve(true); diff --git a/src/pages/share/containers/ShareGroupType/actions/Delete.jsx b/src/pages/share/containers/ShareGroupType/actions/Delete.jsx index 78b02d90..b603933e 100644 --- a/src/pages/share/containers/ShareGroupType/actions/Delete.jsx +++ b/src/pages/share/containers/ShareGroupType/actions/Delete.jsx @@ -36,7 +36,7 @@ export default class Delete extends ConfirmAction { return t('Delete Share Group Type'); } - policy = 'manila:share_group_type:delete'; + policy = 'share_group_type:delete'; onSubmit = (data) => globalShareGroupTypeStore.delete(data); } diff --git a/src/pages/share/containers/ShareGroupType/actions/ManageAccess.jsx b/src/pages/share/containers/ShareGroupType/actions/ManageAccess.jsx index ac9a35b3..d356ff14 100644 --- a/src/pages/share/containers/ShareGroupType/actions/ManageAccess.jsx +++ b/src/pages/share/containers/ShareGroupType/actions/ManageAccess.jsx @@ -41,9 +41,9 @@ export class ManageAccess extends ModalAction { } static policy = [ - 'manila:share_group_type:list_project_access', - 'manila:share_group_type:add_project_access', - 'manila:share_group_type:remove_project_access', + 'share_group_type:list_project_access', + 'share_group_type:add_project_access', + 'share_group_type:remove_project_access', ]; static allowed = (item) => Promise.resolve(!item.is_public); diff --git a/src/pages/share/containers/ShareGroupType/index.jsx b/src/pages/share/containers/ShareGroupType/index.jsx index ff0dec33..d53977ba 100644 --- a/src/pages/share/containers/ShareGroupType/index.jsx +++ b/src/pages/share/containers/ShareGroupType/index.jsx @@ -24,7 +24,7 @@ export class ShareGroupType extends Base { } get policy() { - return 'manila:share_type:index'; + return 'share_type:index'; } get name() { diff --git a/src/pages/share/containers/ShareInstance/Detail/index.jsx b/src/pages/share/containers/ShareInstance/Detail/index.jsx index 87c8857e..74ac31cb 100644 --- a/src/pages/share/containers/ShareInstance/Detail/index.jsx +++ b/src/pages/share/containers/ShareInstance/Detail/index.jsx @@ -25,7 +25,7 @@ export class Detail extends Base { } get policy() { - return 'manila:share_instance:show'; + return 'share_instance:show'; } get listUrl() { diff --git a/src/pages/share/containers/ShareInstance/actions/Delete.jsx b/src/pages/share/containers/ShareInstance/actions/Delete.jsx index 3333e397..88e9a1f9 100644 --- a/src/pages/share/containers/ShareInstance/actions/Delete.jsx +++ b/src/pages/share/containers/ShareInstance/actions/Delete.jsx @@ -36,7 +36,7 @@ export default class Delete extends ConfirmAction { return t('Force Delete Share Instance'); } - policy = 'manila:share_instance:force_delete'; + policy = 'share_instance:force_delete'; onSubmit = (data) => globalShareInstanceStore.forceDelete(data); } diff --git a/src/pages/share/containers/ShareInstance/actions/ResetStatus.jsx b/src/pages/share/containers/ShareInstance/actions/ResetStatus.jsx index 4eddc2ae..57a93f50 100644 --- a/src/pages/share/containers/ShareInstance/actions/ResetStatus.jsx +++ b/src/pages/share/containers/ShareInstance/actions/ResetStatus.jsx @@ -40,7 +40,7 @@ export class ResetStatus extends ModalAction { return (this.item || {}).id; } - static policy = 'manila:share_instance:reset_status'; + static policy = 'share_instance:reset_status'; static allowed = () => Promise.resolve(true); diff --git a/src/pages/share/containers/ShareInstance/index.jsx b/src/pages/share/containers/ShareInstance/index.jsx index fca2fdc9..59dc9259 100644 --- a/src/pages/share/containers/ShareInstance/index.jsx +++ b/src/pages/share/containers/ShareInstance/index.jsx @@ -24,7 +24,7 @@ export class ShareInstance extends Base { } get policy() { - return 'manila:share_instance:index'; + return 'share_instance:index'; } get name() { diff --git a/src/pages/share/containers/ShareNetwork/Detail/index.jsx b/src/pages/share/containers/ShareNetwork/Detail/index.jsx index 092bcbce..4607a0eb 100644 --- a/src/pages/share/containers/ShareNetwork/Detail/index.jsx +++ b/src/pages/share/containers/ShareNetwork/Detail/index.jsx @@ -25,7 +25,7 @@ export class Detail extends Base { } get policy() { - return 'manila:share_network:show'; + return 'share_network:show'; } get listUrl() { diff --git a/src/pages/share/containers/ShareNetwork/actions/Create.jsx b/src/pages/share/containers/ShareNetwork/actions/Create.jsx index 7c0c82e0..e78194cf 100644 --- a/src/pages/share/containers/ShareNetwork/actions/Create.jsx +++ b/src/pages/share/containers/ShareNetwork/actions/Create.jsx @@ -35,7 +35,7 @@ export class Create extends ModalAction { this.portStore = new PortStore(); } - static policy = 'manila:share_network:create'; + static policy = 'share_network:create'; static allowed = () => Promise.resolve(true); diff --git a/src/pages/share/containers/ShareNetwork/actions/Delete.jsx b/src/pages/share/containers/ShareNetwork/actions/Delete.jsx index 32b05848..89b4ab3b 100644 --- a/src/pages/share/containers/ShareNetwork/actions/Delete.jsx +++ b/src/pages/share/containers/ShareNetwork/actions/Delete.jsx @@ -36,7 +36,7 @@ export default class Delete extends ConfirmAction { return t('Delete Share Network'); } - policy = 'manila:share_network:delete'; + policy = 'share_network:delete'; onSubmit = (data) => globalShareNetworkStore.delete(data); } diff --git a/src/pages/share/containers/ShareNetwork/actions/Edit.jsx b/src/pages/share/containers/ShareNetwork/actions/Edit.jsx index 217ad9a9..3b76c7a0 100644 --- a/src/pages/share/containers/ShareNetwork/actions/Edit.jsx +++ b/src/pages/share/containers/ShareNetwork/actions/Edit.jsx @@ -30,7 +30,7 @@ export class Edit extends ModalAction { return value; } - static policy = 'manila:share_network:update'; + static policy = 'share_network:update'; static allowed = () => Promise.resolve(true); diff --git a/src/pages/share/containers/ShareNetwork/index.jsx b/src/pages/share/containers/ShareNetwork/index.jsx index 581318d2..3464e3bd 100644 --- a/src/pages/share/containers/ShareNetwork/index.jsx +++ b/src/pages/share/containers/ShareNetwork/index.jsx @@ -24,7 +24,7 @@ export class ShareNetwork extends Base { } get policy() { - return 'manila:share_network:detail'; + return 'share_network:detail'; } get name() { diff --git a/src/pages/share/containers/ShareServer/Detail/index.jsx b/src/pages/share/containers/ShareServer/Detail/index.jsx index 39a6aa4b..250c722d 100644 --- a/src/pages/share/containers/ShareServer/Detail/index.jsx +++ b/src/pages/share/containers/ShareServer/Detail/index.jsx @@ -26,7 +26,7 @@ export class Detail extends Base { } get policy() { - return 'manila:share_server:show'; + return 'share_server:show'; } get listUrl() { diff --git a/src/pages/share/containers/ShareServer/actions/Delete.jsx b/src/pages/share/containers/ShareServer/actions/Delete.jsx index 334df42f..13d6a471 100644 --- a/src/pages/share/containers/ShareServer/actions/Delete.jsx +++ b/src/pages/share/containers/ShareServer/actions/Delete.jsx @@ -36,7 +36,7 @@ export default class Delete extends ConfirmAction { return t('Delete Share Server'); } - policy = 'manila:share_server:delete'; + policy = 'share_server:delete'; onSubmit = (data) => globalShareServerStore.delete(data); } diff --git a/src/pages/share/containers/ShareServer/index.jsx b/src/pages/share/containers/ShareServer/index.jsx index 7ce01c8e..9976072e 100644 --- a/src/pages/share/containers/ShareServer/index.jsx +++ b/src/pages/share/containers/ShareServer/index.jsx @@ -24,7 +24,7 @@ export class ShareServer extends Base { } get policy() { - return 'manila:share_server:index'; + return 'share_server:index'; } get name() { diff --git a/src/pages/share/containers/ShareType/Detail/ExtraSpec/actions/Create.jsx b/src/pages/share/containers/ShareType/Detail/ExtraSpec/actions/Create.jsx index 8a575bdb..bb1d7eda 100644 --- a/src/pages/share/containers/ShareType/Detail/ExtraSpec/actions/Create.jsx +++ b/src/pages/share/containers/ShareType/Detail/ExtraSpec/actions/Create.jsx @@ -25,7 +25,7 @@ export class Create extends ModalAction { return t('Create Extra Specs'); } - static policy = 'manila:share_types_extra_spec:create'; + static policy = 'share_types_extra_spec:create'; static allowed = () => Promise.resolve(true); diff --git a/src/pages/share/containers/ShareType/Detail/ExtraSpec/actions/Delete.jsx b/src/pages/share/containers/ShareType/Detail/ExtraSpec/actions/Delete.jsx index 28582b9b..8ad443a6 100644 --- a/src/pages/share/containers/ShareType/Detail/ExtraSpec/actions/Delete.jsx +++ b/src/pages/share/containers/ShareType/Detail/ExtraSpec/actions/Delete.jsx @@ -36,7 +36,7 @@ export default class Delete extends ConfirmAction { return t('Delete Extra Specs'); } - policy = 'manila:share_types_extra_spec:delete'; + policy = 'share_types_extra_spec:delete'; allowedCheckFunc = (data) => data.keyName !== 'driver_handles_share_servers'; diff --git a/src/pages/share/containers/ShareType/Detail/ExtraSpec/actions/Edit.jsx b/src/pages/share/containers/ShareType/Detail/ExtraSpec/actions/Edit.jsx index 11dff124..4222b06e 100644 --- a/src/pages/share/containers/ShareType/Detail/ExtraSpec/actions/Edit.jsx +++ b/src/pages/share/containers/ShareType/Detail/ExtraSpec/actions/Edit.jsx @@ -40,7 +40,7 @@ export class Edit extends ModalAction { return defaultValue; } - static policy = 'manila:share_types_extra_spec:update'; + static policy = 'share_types_extra_spec:update'; static allowed = () => Promise.resolve(true); diff --git a/src/pages/share/containers/ShareType/Detail/ExtraSpec/index.jsx b/src/pages/share/containers/ShareType/Detail/ExtraSpec/index.jsx index 9d1aa094..0f05757d 100644 --- a/src/pages/share/containers/ShareType/Detail/ExtraSpec/index.jsx +++ b/src/pages/share/containers/ShareType/Detail/ExtraSpec/index.jsx @@ -23,7 +23,7 @@ export class ExtraSpecs extends Base { } get policy() { - return 'manila:share_types_extra_spec:index'; + return 'share_types_extra_spec:index'; } get name() { diff --git a/src/pages/share/containers/ShareType/Detail/index.jsx b/src/pages/share/containers/ShareType/Detail/index.jsx index 859e74b7..daf27c3f 100644 --- a/src/pages/share/containers/ShareType/Detail/index.jsx +++ b/src/pages/share/containers/ShareType/Detail/index.jsx @@ -25,7 +25,7 @@ export class Detail extends Base { } get policy() { - return 'manila:share_type:show'; + return 'share_type:show'; } get listUrl() { diff --git a/src/pages/share/containers/ShareType/actions/Create.jsx b/src/pages/share/containers/ShareType/actions/Create.jsx index bafdfec0..413d8560 100644 --- a/src/pages/share/containers/ShareType/actions/Create.jsx +++ b/src/pages/share/containers/ShareType/actions/Create.jsx @@ -68,7 +68,7 @@ export class Create extends ModalAction { return this.projectStore.list.data || []; } - static policy = 'manila:share_type:create'; + static policy = 'share_type:create'; static allowed = () => Promise.resolve(true); diff --git a/src/pages/share/containers/ShareType/actions/Delete.jsx b/src/pages/share/containers/ShareType/actions/Delete.jsx index af7dbe9b..f5d9ac51 100644 --- a/src/pages/share/containers/ShareType/actions/Delete.jsx +++ b/src/pages/share/containers/ShareType/actions/Delete.jsx @@ -36,7 +36,7 @@ export default class Delete extends ConfirmAction { return t('Delete Share Type'); } - policy = 'manila:share_type:delete'; + policy = 'share_type:delete'; onSubmit = (data) => globalShareTypeStore.delete(data); } diff --git a/src/pages/share/containers/ShareType/actions/Edit.jsx b/src/pages/share/containers/ShareType/actions/Edit.jsx index 3d2939f7..14ed3ee5 100644 --- a/src/pages/share/containers/ShareType/actions/Edit.jsx +++ b/src/pages/share/containers/ShareType/actions/Edit.jsx @@ -30,7 +30,7 @@ export class Edit extends ModalAction { return value; } - static policy = 'manila:share_type:update'; + static policy = 'share_type:update'; static allowed = () => Promise.resolve(true); diff --git a/src/pages/share/containers/ShareType/actions/ManageAccess.jsx b/src/pages/share/containers/ShareType/actions/ManageAccess.jsx index 0d90be38..6baaea50 100644 --- a/src/pages/share/containers/ShareType/actions/ManageAccess.jsx +++ b/src/pages/share/containers/ShareType/actions/ManageAccess.jsx @@ -39,9 +39,9 @@ export class ManageAccess extends ModalAction { } static policy = [ - 'manila:share_type:list_project_access', - 'manila:share_type:add_project_access', - 'manila:share_type:remove_project_access', + 'share_type:list_project_access', + 'share_type:add_project_access', + 'share_type:remove_project_access', ]; static allowed = () => Promise.resolve(true); diff --git a/src/pages/share/containers/ShareType/index.jsx b/src/pages/share/containers/ShareType/index.jsx index 96b3e647..c0deaa75 100644 --- a/src/pages/share/containers/ShareType/index.jsx +++ b/src/pages/share/containers/ShareType/index.jsx @@ -24,7 +24,7 @@ export class ShareType extends Base { } get policy() { - return 'manila:share_type:index'; + return 'share_type:index'; } get name() { diff --git a/src/pages/storage/containers/Backup/actions/Create.jsx b/src/pages/storage/containers/Backup/actions/Create.jsx index b0ec713f..60b1c576 100644 --- a/src/pages/storage/containers/Backup/actions/Create.jsx +++ b/src/pages/storage/containers/Backup/actions/Create.jsx @@ -67,6 +67,8 @@ export class Create extends ModalAction { static policy = 'backup:create'; + static aliasPolicy = 'cinder:backup:create'; + static allowed = () => Promise.resolve(true); static get disableSubmit() { diff --git a/src/pages/storage/containers/Backup/actions/CreateVolume.jsx b/src/pages/storage/containers/Backup/actions/CreateVolume.jsx index 2b05148a..aef56786 100644 --- a/src/pages/storage/containers/Backup/actions/CreateVolume.jsx +++ b/src/pages/storage/containers/Backup/actions/CreateVolume.jsx @@ -34,6 +34,8 @@ export class CreateVolume extends ModalAction { static policy = 'volume:create'; + static aliasPolicy = 'cinder:volume:create'; + init() { this.volumeStore = globalVolumeStore; this.getAvailZones(); diff --git a/src/pages/storage/containers/Backup/actions/Delete.jsx b/src/pages/storage/containers/Backup/actions/Delete.jsx index 3b953b0d..efd7fbef 100644 --- a/src/pages/storage/containers/Backup/actions/Delete.jsx +++ b/src/pages/storage/containers/Backup/actions/Delete.jsx @@ -38,6 +38,8 @@ export default class DeleteAction extends ConfirmAction { policy = 'backup:delete'; + aliasPolicy = 'cinder:backup:delete'; + get isAsyncAction() { return true; } diff --git a/src/pages/storage/containers/Backup/actions/Edit.jsx b/src/pages/storage/containers/Backup/actions/Edit.jsx index 170d79e7..aa541a78 100644 --- a/src/pages/storage/containers/Backup/actions/Edit.jsx +++ b/src/pages/storage/containers/Backup/actions/Edit.jsx @@ -25,6 +25,8 @@ export class Edit extends ModalAction { static policy = 'backup:update'; + static aliasPolicy = 'cinder:backup:update'; + static allowed() { return Promise.resolve(true); } diff --git a/src/pages/storage/containers/Volume/actions/CreateBackup.jsx b/src/pages/storage/containers/Volume/actions/CreateBackup.jsx index 7a6671e4..064f5499 100644 --- a/src/pages/storage/containers/Volume/actions/CreateBackup.jsx +++ b/src/pages/storage/containers/Volume/actions/CreateBackup.jsx @@ -49,6 +49,8 @@ export class CreateBackup extends ModalAction { static policy = 'backup:create'; + static aliasPolicy = 'cinder:backup:create'; + static allowed = (item) => Promise.resolve(isAvailableOrInUse(item)); get formItems() { diff --git a/src/pages/storage/containers/VolumeType/VolumeType/actions/Create.jsx b/src/pages/storage/containers/VolumeType/VolumeType/actions/Create.jsx index ebe8b54b..64ede08f 100644 --- a/src/pages/storage/containers/VolumeType/VolumeType/actions/Create.jsx +++ b/src/pages/storage/containers/VolumeType/VolumeType/actions/Create.jsx @@ -74,7 +74,7 @@ export class Create extends ModalAction { return servicesMap; } - static policy = 'volume_extension:types_manage'; + static policy = 'volume_extension:type_create'; static allowed = () => Promise.resolve(true); diff --git a/src/pages/storage/containers/VolumeType/VolumeType/actions/Delete.jsx b/src/pages/storage/containers/VolumeType/VolumeType/actions/Delete.jsx index ac13c02b..df3d8699 100644 --- a/src/pages/storage/containers/VolumeType/VolumeType/actions/Delete.jsx +++ b/src/pages/storage/containers/VolumeType/VolumeType/actions/Delete.jsx @@ -36,7 +36,7 @@ export default class DeleteAction extends ConfirmAction { return t('Delete Volume Type'); } - policy = 'volume_extension:types_manage'; + policy = 'volume_extension:type_delete'; onSubmit = (data) => globalVolumeTypeStore.delete(data); } diff --git a/src/pages/storage/containers/VolumeType/VolumeType/actions/Edit.jsx b/src/pages/storage/containers/VolumeType/VolumeType/actions/Edit.jsx index 25da3502..b9d51d32 100644 --- a/src/pages/storage/containers/VolumeType/VolumeType/actions/Edit.jsx +++ b/src/pages/storage/containers/VolumeType/VolumeType/actions/Edit.jsx @@ -30,7 +30,7 @@ export class EditAction extends ModalAction { return value; } - static policy = 'volume_extension:types_manage'; + static policy = 'volume_extension:type_update'; static allowed = () => Promise.resolve(true); diff --git a/src/resources/skyline/policy.js b/src/resources/skyline/policy.js index 336c8de0..020a2f10 100644 --- a/src/resources/skyline/policy.js +++ b/src/resources/skyline/policy.js @@ -15,26 +15,137 @@ import { isArray, isObject, isFunction, isString, has } from 'lodash'; import globalRootStore from 'stores/root'; -export const checkPolicyRule = (rule, actionName) => { +export const policyMap = { + nova: ['os_compute_api'], + ironic: ['baremetal:'], + cinder: [ + 'volume:', + 'volume_extension', + 'backup:get', + 'backup:restore', + 'scheduler_extension', + ], + glance: [ + 'get_image', + 'add_image', + 'upload_image', + 'delete_image', + 'modify_image', + 'get_members', + 'add_member', + 'delete_member', + 'metadef', + ], + neutron: [ + 'get_network', + 'create_network', + 'update_network', + 'delete_network', + 'get_agent', + 'delete_agent', + 'update_agent', + 'get_dhcp-agents', + 'get_l3-agents', + 'create_subnet', + 'get_subnet', + 'update_subnet', + 'delete_subnet', + 'create_port', + 'get_port', + 'update_port', + 'delete_port', + 'router', + 'policy_bandwidth_limit_rule', + 'policy_dscp_marking_rule', + 'security_group', + 'floatingip', + 'vpnservice', + 'ipsec_site_connection', + ], + octavia: ['os_load-balancer_api'], + // keystone: ['identity:'], + heat: ['stacks:', 'resource:index'], + magnum: ['cluster', 'clustertemplate'], + barbican: [ + 'secret:get', + 'secret:decrypt', + 'secret:delete', + 'containers:post', + ], + zun: ['capsule:', 'container:', 'host:get'], + panko: ['segregation', 'telemetry:events:index'], + manila: ['share:', 'share_'], + trove: [ + 'instance:create', + 'instance:delete', + 'instance:backups', + 'instance:delete', + 'instance:extension', + 'instance:guest_log_list', + 'configuration:', + 'backup:index', + 'backup:show', + ], +}; + +export const convertPolicyMap = () => { + const newObj = {}; + Object.entries(policyMap).forEach(([key, value]) => { + value.forEach((v) => { + if (newObj[v]) { + // eslint-disable-next-line no-console + console.log('policy rule prefix is repeat', `${newObj[v]}:${key}`); + } + newObj[v] = key; + }); + }); + return newObj; +}; + +export const changeToActualPolicy = (rule) => { + const policies = convertPolicyMap(); + if (policies[rule]) { + return `${policies[rule]}:${rule}`; + } + const item = Object.keys(policies).filter((key) => { + return rule.includes(key); + }); + if (item.length > 1) { + item.forEach((key) => { + // eslint-disable-next-line no-console + console.log( + 'policy rule prefix is conflict or repeat', + `${policies[key]}:${rule}` + ); + }); + } + const prefix = item.length && policies[item[0]]; + return prefix ? `${prefix}:${rule}` : rule; +}; + +export const checkPolicyRule = (rule, actionName, isAliasPolicy) => { if (!rule) { return true; } - const item = globalRootStore.policies.find((it) => it.rule === rule); + const actualRule = isAliasPolicy ? rule : changeToActualPolicy(rule); + const item = globalRootStore.policies.find((it) => it.rule === actualRule); if (!item) { // eslint-disable-next-line no-console - console.log('policy rule not exit', rule, actionName); + console.log('policy rule not exit', actualRule, actionName); } return item ? item.allowed : true; }; -const checkPolicyRules = (rules, every, actionName) => { +const checkPolicyRules = (rules, every, actionName, isAliasPolicy) => { if (rules.length === 0) { return true; } if (every) { - return rules.every((rule) => checkPolicyRule(rule, actionName)); + return rules.every((rule) => + checkPolicyRule(rule, actionName, isAliasPolicy) + ); } - return rules.some((rule) => checkPolicyRule(rule, actionName)); + return rules.some((rule) => checkPolicyRule(rule, actionName, isAliasPolicy)); }; export const systemRoleIsReader = () => { @@ -51,6 +162,7 @@ export const systemRoleIsReader = () => { const checkItemPolicy = ({ policy, + aliasPolicy, item, actionName, isAdminPage, @@ -65,12 +177,13 @@ const checkItemPolicy = ({ if (isAdminPage && !enableSystemReader && systemRoleIsReader()) { return false; } - if (!policy) { + if (!policy && !aliasPolicy) { // eslint-disable-next-line no-console console.log('has no policy', policy, item, actionName); return true; } - const itemPolicy = isFunction(policy) ? policy(item) : policy; + const usePolicy = aliasPolicy || policy; + const itemPolicy = isFunction(usePolicy) ? usePolicy(item) : usePolicy; let rules = []; let every = true; if (isArray(itemPolicy)) { @@ -85,10 +198,10 @@ const checkItemPolicy = ({ } if (!rules) { // eslint-disable-next-line no-console - console.log('has no rules', policy, item, actionName, rules); + console.log('has no rules', usePolicy, item, actionName, rules); return true; } - return checkPolicyRules(rules, every, actionName); + return checkPolicyRules(rules, every, actionName, !!aliasPolicy); }; export default checkItemPolicy;