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"

Reply via email to