From 459b32cc6a8384c20dd03c56fe83ae701fac4ec3 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 2ee263b7840..26f8f6bc4c0 100755 --- a/server/src/com/cloud/template/TemplateManagerImpl.java +++ b/server/src/com/cloud/template/TemplateManagerImpl.java @@ -839,8 +839,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 301b2836cf4..e60da536702 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; @@ -808,8 +809,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);