Merged HEAD-BUG-FIX (4.3/Cloud) to HEAD (4.3/Cloud)

61122: Merged V4.2-BUG-FIX (4.2.2) to HEAD-BUG-FIX (Cloud/4.3)
      60991: Merged DEV to V4.2-BUG-FIX
      60325 : MNT-10404 : Runas problem in workflow when package contains versioned content
       Added some unit tests. 
      60443 : MNT-10404 : Runas problem in workflow when package contains versioned content
       Added tests, debug log. Run work as system user in VersionableAspect. 
      60452 : MNT-10404 : Runas problem in workflow when package contains versioned content
       Wrap debug statements. 
      60492 : MNT-10404 : Runas problem in workflow when package contains versioned content
       Fix if statement indents. 


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@62387 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Alan Davis
2014-02-12 14:54:12 +00:00
parent 2c94cd7672
commit 34f6abe455

View File

@@ -18,16 +18,22 @@
*/
package org.alfresco.repo.web.scripts.person;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import org.alfresco.model.ContentModel;
import org.alfresco.repo.security.authentication.AuthenticationComponent;
import org.alfresco.repo.security.authentication.AuthenticationUtil;
import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork;
import org.alfresco.repo.security.person.UserNameMatcherImpl;
import org.alfresco.repo.web.scripts.BaseWebScriptTest;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.security.MutableAuthenticationService;
import org.alfresco.service.cmr.security.NoSuchPersonException;
import org.alfresco.service.cmr.security.PersonService;
import org.alfresco.service.namespace.QName;
import org.alfresco.util.PropertyMap;
import org.springframework.extensions.surf.util.URLEncoder;
import org.springframework.extensions.webscripts.Status;
@@ -404,4 +410,67 @@ public class PersonServiceTest extends BaseWebScriptTest
this.authenticationComponent.setCurrentUser(currentUser);
}
public void test_MNT10404_AuthenticationUtil()
{
AuthenticationUtil.setFullyAuthenticatedUser(AuthenticationUtil.getAdminUserName());
String user1 = "user1";
String user2 = "user2";
String user3 = "user3";
List<String> users = new ArrayList<String>();
try
{
users.add(user1);
users.add(user2);
users.add(user3);
for (String user : users)
{
createPerson(user);
assertEquals(user, getAuthInRun(user));
}
}
finally
{
if (users.size() > 0)
{
for (String user : users)
{
if (personService.personExists(user))
{
personService.deletePerson(user);
}
}
}
}
}
private String getAuthInRun(String userName)
{
RunAsWork<String> getWork = new RunAsWork<String>()
{
@Override
public String doWork() throws Exception
{
return AuthenticationUtil.getRunAsUser();
}
};
return AuthenticationUtil.runAs(getWork, userName);
}
private NodeRef createPerson(String userName)
{
if (personService.personExists(userName))
{
personService.deletePerson(userName);
}
HashMap<QName, Serializable> properties = new HashMap<QName, Serializable>();
properties.put(ContentModel.PROP_USERNAME, userName);
return personService.createPerson(properties);
}
}