Merged 5.0.N (5.0.4) to 5.1.N (5.1.2)

127102 rmunteanu: MNT-15614 : Site with name "IT" cannot be managed properly
      - Changed the way the role name is striped out.
      - Implemented tests.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/DEV/5.1.N/root@127134 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Cristian Turlica
2016-05-16 14:53:18 +00:00
parent cfa7b2b72f
commit bd12ec9489
3 changed files with 64 additions and 5 deletions

View File

@@ -2262,10 +2262,11 @@ public class SiteServiceImpl extends AbstractLifecycleBean implements SiteServic
List<String> groups = getPermissionGroups(shortName, authorityName);
for (String group : groups)
{
int index = group.indexOf(shortName) + shortName.length();
String shortNamePattern = '_' + shortName + '_';
int index = group.lastIndexOf(shortNamePattern) + (shortNamePattern).length();
if (index != -1)
{
result.add(group.substring(index + 1));
result.add(group.substring(index));
}
}
return result;

View File

@@ -40,6 +40,7 @@ import javax.mail.internet.MimeMessage;
import org.alfresco.model.ContentModel;
import org.alfresco.repo.action.executer.MailActionExecuter;
import org.alfresco.repo.management.subsystems.ApplicationContextFactory;
import org.alfresco.repo.processor.TemplateServiceImpl;
import org.alfresco.repo.security.authentication.AuthenticationComponent;
import org.alfresco.repo.security.authentication.AuthenticationUtil;
import org.alfresco.repo.site.SiteModel;
@@ -51,9 +52,7 @@ import org.alfresco.service.cmr.invitation.InvitationService;
import org.alfresco.service.cmr.invitation.ModeratedInvitation;
import org.alfresco.service.cmr.invitation.NominatedInvitation;
import org.alfresco.service.cmr.repository.TemplateService;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.security.PersonService;
import org.alfresco.service.cmr.security.PersonService.PersonInfo;
import org.alfresco.service.cmr.site.SiteInfo;
import org.alfresco.service.cmr.site.SiteService;
import org.alfresco.service.cmr.site.SiteVisibility;
@@ -62,7 +61,6 @@ import org.alfresco.util.PropertyMap;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.util.ReflectionUtils;
import org.alfresco.repo.processor.TemplateServiceImpl;
/**
* Unit tests of Invitation Service
@@ -661,6 +659,39 @@ public abstract class AbstractInvitationServiceImplTest extends BaseAlfrescoSpri
}
}
/**
* MNT-15614 Site with name "IT" cannot be managed properly
*
* @throws Exception
*/
public void test_MNT15614() throws Exception
{
String[] siteNames = {"it", "site", "GROUP"};
String inviteeUserName = USER_ONE;
Invitation.ResourceType resourceType = Invitation.ResourceType.WEB_SITE;
String inviteeRole = SiteModel.SITE_COLLABORATOR;
String acceptUrl = "froob";
String rejectUrl = "marshmallow";
this.authenticationComponent.setCurrentUser(AuthenticationUtil.getAdminUserName());
for (String siteName : siteNames)
{
SiteInfo siteInfoRed = siteService.getSite(siteName);
if (siteInfoRed == null)
{
siteService.createSite("InviteSitePreset", siteName, "InviteSiteTitle",
"InviteSiteDescription", SiteVisibility.MODERATED);
}
// Invite user
NominatedInvitation nominatedInvitation = invitationService.inviteNominated(
inviteeUserName, resourceType, siteName, inviteeRole, acceptUrl, rejectUrl);
assertNotNull("nominated invitation is null", nominatedInvitation);
}
}
/**
* Test nominated user - new user with whitespace in name. Related to
* ETHREEOH-3030.

View File

@@ -869,6 +869,33 @@ public class SiteServiceImplTest extends BaseAlfrescoSpringTest
startNewTransaction();
}
public void testMNT_15614() throws Exception
{
RetryingTransactionCallback<Object> work = new RetryingTransactionCallback<Object>()
{
@Override
public Object execute() throws Throwable
{
String[] siteNames = { "it", "site", "GROUP" };
authenticationComponent.setCurrentUser(AuthenticationUtil.getAdminUserName());
for (String siteName : siteNames)
{
siteService.createSite(siteName, siteName, siteName, siteName, SiteVisibility.PUBLIC);
assertEquals( SiteModel.SITE_MANAGER, siteService.getMembersRole(siteName, AuthenticationUtil.getAdminUserName()));
siteService.deleteSite(siteName);
}
return null;
}
};
endTransaction();
transactionService.getRetryingTransactionHelper().doInTransaction(work);
startNewTransaction();
}
/**
* Test listSite case sensitivity
*/