fix: Fix attach & detach iso volume permission

1. Instance can attach iso volume if status is shutoff and it is not ironic
2. Instance can detach iso volume if status is shutoff

Change-Id: I54a2f6c3e1062231992d5926b34a955141963c89
This commit is contained in:
xusongfu 2021-08-24 08:54:22 +08:00
parent 66cd6d5a45
commit caf0429302
2 changed files with 12 additions and 11 deletions

View File

@ -16,10 +16,10 @@ import { inject, observer } from 'mobx-react';
import globalServerStore from 'stores/nova/instance';
import { ModalAction } from 'containers/Action';
import {
isActive,
isShutOff,
isNotDeleting,
isNotLocked,
isBuilding,
isIronicInstance,
} from 'resources/instance';
import { multiTip } from 'resources/volume';
import { get as _get } from 'lodash';
@ -75,8 +75,8 @@ export default class AttachIsoVolume extends ModalAction {
!isAdminPage &&
isNotDeleting(item) &&
isNotLocked(item) &&
!isActive(item) &&
!isBuilding(item)
!isIronicInstance(item) &&
isShutOff(item)
);
};

View File

@ -18,11 +18,10 @@ import globalServerStore from 'stores/nova/instance';
import { ModalAction } from 'containers/Action';
import { volumeStatus, isOsDisk, isAttachIsoVolume } from 'resources/volume';
import {
isActive,
isShutOff,
isNotLocked,
isNotDeleting,
isIronicInstance,
isBuilding,
} from 'resources/instance';
@inject('rootStore')
@ -74,14 +73,16 @@ export default class DetachIsoVolume extends ModalAction {
// static hasDataVolume = item => item.volumes_attached && item.volumes_attached.length > 1
// static allowed = item => Promise.resolve(isActive(item) && isNotDeleting(item) && isNotLocked(item) && this.hasDataVolume(item))
static allowed = (item) =>
Promise.resolve(
isNotDeleting(item) &&
static allowed = (item, containerProps) => {
const { isAdminPage } = containerProps;
return Promise.resolve(
!isAdminPage &&
isNotDeleting(item) &&
isNotLocked(item) &&
!isIronicInstance(item) &&
!isActive(item) &&
!isBuilding(item)
isShutOff(item)
);
};
get formItems() {
return [