From 03c78247ccb8dd260350b8102d6ec415d30e892f Mon Sep 17 00:00:00 2001 From: Nitin Mehta Date: Tue, 3 Dec 2013 14:54:59 -0800 Subject: [PATCH] CLOUDSTACK-3364: change updateIsoPermissions API to accept isextractable paramter from normal user --- .../cloud/template/TemplateManagerImpl.java | 20 ++++++++----------- 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/server/src/com/cloud/template/TemplateManagerImpl.java b/server/src/com/cloud/template/TemplateManagerImpl.java index b3da060f9ed..f2fdcee6540 100755 --- a/server/src/com/cloud/template/TemplateManagerImpl.java +++ b/server/src/com/cloud/template/TemplateManagerImpl.java @@ -1264,18 +1264,14 @@ public class TemplateManagerImpl extends ManagerBase implements TemplateManager, updatedTemplate.setFeatured(isFeatured.booleanValue()); } - if (isExtractable != null && caller.getType() == Account.ACCOUNT_TYPE_ADMIN) {// Only - // ROOT - // admins - // allowed - // to - // change - // this - // powerful - // attribute - updatedTemplate.setExtractable(isExtractable.booleanValue()); - } else if (isExtractable != null && caller.getType() != Account.ACCOUNT_TYPE_ADMIN) { - throw new InvalidParameterValueException("Only ROOT admins are allowed to modify this attribute."); + if(isExtractable != null){ + // Only Root admins allowed to change it for templates + if(!template.getFormat().equals(ImageFormat.ISO) && caller.getType() != Account.ACCOUNT_TYPE_ADMIN){ + throw new InvalidParameterValueException("Only ROOT admins are allowed to modify this attribute."); + }else{ + // For Isos normal user can change it, as their are no derivatives. + updatedTemplate.setExtractable(isExtractable.booleanValue()); + } } _tmpltDao.update(template.getId(), updatedTemplate);