From 36344a33953ccb463681ccb221c560d92bec2d7f Mon Sep 17 00:00:00 2001 From: alena Date: Mon, 19 Sep 2011 15:11:38 -0700 Subject: [PATCH] bug 11493: no need to do cross domain checks for the templates as domain level templates are not supported. We support only public (everybody can see and use) and private (only owner can see and use unless changed with updateTemplatePermissions call) status 11493: resolved fixed Reviewed-by: will@cloud.com --- server/src/com/cloud/template/TemplateManagerImpl.java | 3 +-- server/src/com/cloud/user/AccountManagerImpl.java | 4 +++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/server/src/com/cloud/template/TemplateManagerImpl.java b/server/src/com/cloud/template/TemplateManagerImpl.java index da8405f7227..752825f7a23 100755 --- a/server/src/com/cloud/template/TemplateManagerImpl.java +++ b/server/src/com/cloud/template/TemplateManagerImpl.java @@ -841,8 +841,7 @@ public class TemplateManagerImpl implements TemplateManager, Manager, TemplateSe } //check permissions - _accountMgr.checkAccess(caller, null, iso); - _accountMgr.checkAccess(caller, null, vm); + _accountMgr.checkAccess(caller, null, iso, vm); State vmState = vm.getState(); if (vmState != State.Running && vmState != State.Stopped) { diff --git a/server/src/com/cloud/user/AccountManagerImpl.java b/server/src/com/cloud/user/AccountManagerImpl.java index 28ce0b286a3..3e9ed681304 100755 --- a/server/src/com/cloud/user/AccountManagerImpl.java +++ b/server/src/com/cloud/user/AccountManagerImpl.java @@ -97,6 +97,7 @@ import com.cloud.storage.dao.VMTemplateDao; import com.cloud.storage.dao.VolumeDao; import com.cloud.storage.snapshot.SnapshotManager; import com.cloud.template.TemplateManager; +import com.cloud.template.VirtualMachineTemplate; import com.cloud.user.Account.State; import com.cloud.user.dao.AccountDao; import com.cloud.user.dao.UserAccountDao; @@ -823,8 +824,9 @@ public class AccountManagerImpl implements AccountManager, AccountService, Manag Account account = ApiDBUtils.findAccountById(entity.getAccountId()); domainId = account != null ? account.getDomainId() : -1 ; } - if (entity.getAccountId() != -1 && domainId != -1) { + if (entity.getAccountId() != -1 && domainId != -1 && !(entity instanceof VirtualMachineTemplate)) { List toBeChecked = domains.get(entity.getDomainId()); + //for templates, we don't have to do cross domains check if (toBeChecked == null) { toBeChecked = new ArrayList(); domains.put(domainId, toBeChecked);