From 3be14e978aa0c9b286d9f57bf1fc60ebe50990c7 Mon Sep 17 00:00:00 2001 From: Kevin Dierkx Date: Fri, 7 Aug 2015 14:20:44 +0200 Subject: [PATCH] Made interface changes related to CLOUDSTACK-8580 --- ui/scripts/cloudStack.js | 4 ++-- ui/scripts/instances.js | 21 ++++++++++++++------- ui/scripts/sharedFunctions.js | 2 +- 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/ui/scripts/cloudStack.js b/ui/scripts/cloudStack.js index 146f8d1083d2..42636ddcdf13 100644 --- a/ui/scripts/cloudStack.js +++ b/ui/scripts/cloudStack.js @@ -143,9 +143,9 @@ if (json.listcapabilitiesresponse.capability.userpublictemplateenabled != null) { g_userPublicTemplateEnabled = json.listcapabilitiesresponse.capability.userpublictemplateenabled.toString(); //convert boolean to string if it's boolean } + g_allowUserExpungeRecoverVm = json.listcapabilitiesresponse.capability.allowuserexpungerecovervm; g_userProjectsEnabled = json.listcapabilitiesresponse.capability.allowusercreateprojects; - g_cloudstackversion = json.listcapabilitiesresponse.capability.cloudstackversion; if (json.listcapabilitiesresponse.capability.apilimitinterval != null && json.listcapabilitiesresponse.capability.apilimitmax != null) { @@ -274,9 +274,9 @@ if (json.listcapabilitiesresponse.capability.userpublictemplateenabled != null) { g_userPublicTemplateEnabled = json.listcapabilitiesresponse.capability.userpublictemplateenabled.toString(); //convert boolean to string if it's boolean } + g_allowUserExpungeRecoverVm = json.listcapabilitiesresponse.capability.allowuserexpungerecovervm; g_userProjectsEnabled = json.listcapabilitiesresponse.capability.allowusercreateprojects; - g_cloudstackversion = json.listcapabilitiesresponse.capability.cloudstackversion; if (json.listcapabilitiesresponse.capability.apilimitinterval != null && json.listcapabilitiesresponse.capability.apilimitmax != null) { diff --git a/ui/scripts/instances.js b/ui/scripts/instances.js index 1347422ac5e8..35afde073041 100644 --- a/ui/scripts/instances.js +++ b/ui/scripts/instances.js @@ -618,11 +618,11 @@ createForm: { title: 'label.action.destroy.instance', desc: 'label.action.destroy.instance', - isWarning: true, + isWarning: true, preFilter: function(args) { - if (isAdmin() || isDomainAdmin()) { - args.$form.find('.form-item[rel=expunge]').css('display', 'inline-block'); - } else { + // Hide the expunge checkbox when the authenticated user + // can't expunge VMs. Related to CLOUDSTACK-8580. + if (! g_allowUserExpungeRecoverVm) { args.$form.find('.form-item[rel=expunge]').hide(); } }, @@ -2434,11 +2434,15 @@ var allowedActions = []; if (jsonObj.state == 'Destroyed') { - if (isAdmin() || isDomainAdmin()) { + // Display expunge and recover action when authenticated user + // is allowed to expunge or recover VMs. Related to CLOUDSTACK-8580. + if (g_allowUserExpungeRecoverVm) { allowedActions.push("recover"); } - if (isAdmin() || isDomainAdmin()) + + if (g_allowUserExpungeRecoverVm) { allowedActions.push("expunge"); + } } else if (jsonObj.state == 'Running') { allowedActions.push("stop"); allowedActions.push("restart"); @@ -2507,8 +2511,11 @@ } else if (jsonObj.state == 'Error') { allowedActions.push("destroy"); } else if (jsonObj.state == 'Expunging') { - if (isAdmin() || isDomainAdmin()) + // Display expunge action when authenticated user + // is allowed to expunge VMs. Related to CLOUDSTACK-8580. + if (g_allowUserExpungeRecoverVm) { allowedActions.push("expunge"); + } } return allowedActions; } diff --git a/ui/scripts/sharedFunctions.js b/ui/scripts/sharedFunctions.js index daf3eb56818b..7b4b26a0ca2a 100644 --- a/ui/scripts/sharedFunctions.js +++ b/ui/scripts/sharedFunctions.js @@ -30,6 +30,7 @@ var g_supportELB = null; var g_kvmsnapshotenabled = null; var g_regionsecondaryenabled = null; var g_userPublicTemplateEnabled = "true"; +var g_allowUserExpungeRecoverVm = "false"; var g_cloudstackversion = null; var g_queryAsyncJobResultInterval = 3000; var g_idpList = null; @@ -2332,4 +2333,3 @@ $.validator.addMethod("ipv4cidr", function(value, element) { return true; }, "The specified IPv4 CIDR is invalid."); -