diff --git a/source/java/org/alfresco/repo/tenant/MultiTServiceImpl.java b/source/java/org/alfresco/repo/tenant/MultiTServiceImpl.java index 6d23624055..05190dd8c2 100644 --- a/source/java/org/alfresco/repo/tenant/MultiTServiceImpl.java +++ b/source/java/org/alfresco/repo/tenant/MultiTServiceImpl.java @@ -538,26 +538,7 @@ public class MultiTServiceImpl implements TenantService */ public boolean isTenantName(String name) { - return getMultiTenantDomainName(name) != null; - } - - public static String getMultiTenantDomainName(String name) - { - // Check that all the passed values are not null - ParameterCheck.mandatory("name", name); - - int idx1 = name.indexOf(SEPARATOR); - if (idx1 == 0) - { - int idx2 = name.indexOf(SEPARATOR, 1); - if (idx2 != -1) - { - return name.substring(1, idx2); - - } - } - - return null; + return false == getDomain(name, false).isEmpty(); } /* (non-Javadoc) @@ -576,7 +557,7 @@ public class MultiTServiceImpl implements TenantService return tenantDomain; } - } + } return DEFAULT_DOMAIN; // default domain - non-tenant user } @@ -595,11 +576,12 @@ public class MultiTServiceImpl implements TenantService */ public String getDomain(String name) { - // Check that all the passed values are not null + return getDomain(name, false); + } + + public String getDomain(String name, boolean checkCurrentDomain) + { ParameterCheck.mandatory("name", name); - - name = getTenantDomain(name); - String tenantDomain = getCurrentUserDomain(); String nameDomain = DEFAULT_DOMAIN; @@ -607,14 +589,19 @@ public class MultiTServiceImpl implements TenantService if (idx1 == 0) { int idx2 = name.indexOf(SEPARATOR, 1); - nameDomain = name.substring(1, idx2); + nameDomain = getTenantDomain(name.substring(1, idx2)); - if ((! tenantDomain.equals(DEFAULT_DOMAIN)) && (! tenantDomain.equals(nameDomain))) + if (checkCurrentDomain) { - throw new AlfrescoRuntimeException("domain mismatch: expected = " + tenantDomain + ", actual = " + nameDomain); - } + String tenantDomain = getCurrentUserDomain(); + + if ((! tenantDomain.equals(DEFAULT_DOMAIN)) && (! tenantDomain.equals(nameDomain))) + { + throw new AlfrescoRuntimeException("domain mismatch: expected = " + tenantDomain + ", actual = " + nameDomain); + } + } } - + return nameDomain; } @@ -716,11 +703,9 @@ public class MultiTServiceImpl implements TenantService } tenantsCache.remove(tenantDomain); } - - protected String getTenantDomain(String tenantDomain) + + private String getTenantDomain(String tenantDomain) { - ParameterCheck.mandatory("tenantDomain", tenantDomain); return tenantDomain.toLowerCase(I18NUtil.getLocale()); } - } diff --git a/source/java/org/alfresco/repo/usage/UserUsageTrackingComponent.java b/source/java/org/alfresco/repo/usage/UserUsageTrackingComponent.java index 90b0c67a22..f9ecef362e 100644 --- a/source/java/org/alfresco/repo/usage/UserUsageTrackingComponent.java +++ b/source/java/org/alfresco/repo/usage/UserUsageTrackingComponent.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2005-2010 Alfresco Software Limited. + * Copyright (C) 2005-2011 Alfresco Software Limited. * * This file is part of Alfresco * @@ -34,8 +34,8 @@ import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork; import org.alfresco.repo.tenant.Tenant; import org.alfresco.repo.tenant.TenantAdminService; import org.alfresco.repo.tenant.TenantService; -import org.alfresco.repo.transaction.TransactionServiceImpl; import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback; +import org.alfresco.repo.transaction.TransactionServiceImpl; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeService; import org.alfresco.service.cmr.repository.StoreRef; @@ -526,7 +526,7 @@ public class UserUsageTrackingComponent extends AbstractLifecycleBean { return collapseUsage(usageNodeRef); } - }, tenantAdminService.getDomainUser(AuthenticationUtil.getSystemUserName(), tenantAdminService.getDomain(usageNodeRef.getStoreRef().getIdentifier()))); + }, tenantAdminService.getDomainUser(AuthenticationUtil.getSystemUserName(), tenantService.getDomain(usageNodeRef.getStoreRef().getIdentifier()))); if (collapsed) { diff --git a/source/java/org/alfresco/repo/workflow/WorkflowObjectFactory.java b/source/java/org/alfresco/repo/workflow/WorkflowObjectFactory.java index 4727e03ec9..2636252624 100644 --- a/source/java/org/alfresco/repo/workflow/WorkflowObjectFactory.java +++ b/source/java/org/alfresco/repo/workflow/WorkflowObjectFactory.java @@ -27,7 +27,6 @@ import java.util.Map; import org.alfresco.repo.i18n.MessageService; import org.alfresco.repo.jscript.ScriptNode; -import org.alfresco.repo.tenant.MultiTServiceImpl; import org.alfresco.repo.tenant.TenantService; import org.alfresco.service.cmr.dictionary.DictionaryService; import org.alfresco.service.cmr.dictionary.TypeDefinition; @@ -342,7 +341,7 @@ public class WorkflowObjectFactory public Boolean apply(T value) { String key = processKeyGetter.apply(value); - String domain = MultiTServiceImpl.getMultiTenantDomainName(key); + String domain = tenantService.getDomain(key, false); if(enabled) { if(currentDomain.equals(domain))