This is an automated email from the ASF dual-hosted git repository. rohit pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/cloudstack.git
The following commit(s) were added to refs/heads/master by this push: new b509e08 api: Allowing template owner to download template (#3475) b509e08 is described below commit b509e086f99141de6ff588ceaa5d6d3cd0648eca Author: Spaceman1984 <49917670+spaceman1...@users.noreply.github.com> AuthorDate: Tue Jul 9 09:12:41 2019 +0200 api: Allowing template owner to download template (#3475) Removed the download icon when a template is not extractable. Modified the api to allow a user from the same account as the template, to change the extractable attribute on the template. Fixes #3400 --- .../com/cloud/template/TemplateManagerImpl.java | 6 +++--- ui/scripts/templates.js | 25 ++++++---------------- 2 files changed, 9 insertions(+), 22 deletions(-) diff --git a/server/src/main/java/com/cloud/template/TemplateManagerImpl.java b/server/src/main/java/com/cloud/template/TemplateManagerImpl.java index 5eb96aa..373735c 100755 --- a/server/src/main/java/com/cloud/template/TemplateManagerImpl.java +++ b/server/src/main/java/com/cloud/template/TemplateManagerImpl.java @@ -1523,9 +1523,9 @@ public class TemplateManagerImpl extends ManagerBase implements TemplateManager, } if (isExtractable != null) { - // Only Root admins allowed to change it for templates - if (!template.getFormat().equals(ImageFormat.ISO) && !_accountMgr.isRootAdmin(caller.getId())) { - throw new InvalidParameterValueException("Only ROOT admins are allowed to modify isExtractable attribute."); + // Only Root admins and owners are allowed to change it for templates + if (!template.getFormat().equals(ImageFormat.ISO) && caller.getId() != ownerId && !isAdmin) { + throw new InvalidParameterValueException("Only ROOT admins and template owners are allowed to modify isExtractable attribute."); } else { // For Isos normal user can change it, as their are no derivatives. updatedTemplate.setExtractable(isExtractable.booleanValue()); diff --git a/ui/scripts/templates.js b/ui/scripts/templates.js index df04000..c64efc9 100755 --- a/ui/scripts/templates.js +++ b/ui/scripts/templates.js @@ -1595,12 +1595,7 @@ isextractable: { label: 'label.extractable.lower', isBoolean: true, - isEditable: function() { - if (isAdmin()) - return true; - else - return false; - }, + isEditable: true, converter: cloudStack.converters.toBooleanText }, passwordenabled: { @@ -2039,12 +2034,7 @@ isextractable: { label: 'label.extractable.lower', isBoolean: true, - isEditable: function() { - if (isAdmin()) - return true; - else - return false; - }, + isEditable: true, converter: cloudStack.converters.toBooleanText }, passwordenabled: { @@ -3327,12 +3317,7 @@ isextractable: { label: 'label.extractable.lower', isBoolean: true, - isEditable: function() { - if (isAdmin()) - return true; - else - return false; - }, + isEditable: true, converter: cloudStack.converters.toBooleanText }, bootable: { @@ -3449,7 +3434,9 @@ || (jsonObj.isready == false) || jsonObj.templatetype == "SYSTEM") { //do nothing } else { - allowedActions.push("downloadTemplate"); + if (jsonObj.isextractable){ + allowedActions.push("downloadTemplate"); + } } // "Delete Template"