Merged BRANCHES/DEV/THOR1 to HEAD:

30966: MT: rationalise getDomain(...)


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@30993 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Jan Vonka
2011-10-06 10:07:05 +00:00
parent 2737d0f8b0
commit fddcc01209
3 changed files with 23 additions and 39 deletions

View File

@@ -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());
}
}

View File

@@ -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)
{

View File

@@ -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))