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

78359: Merged V4.2-BUG-FIX (4.2.4) to HEAD-BUG-FIX (5.0/Cloud)
      76619: Merged DEV to V4.2-BUG-FIX (4.2.4).
         76456: MNT-10693 Changing permission on a document changes its modified fields in Share
         76496: MNT-10693 Changing permission on a document changes its modified fields in Share
         76499: MNT-10693 Changing permission on a document changes its modified fields in Share
                   - In PermissionServiceTest.testPreserveAuditableData() was made changes.
         76520: MNT-10693 Changing permission on a document changes its modified fields in Share
                   - In AbstractPermissionTest was changed visibility of 'applicationContext' to 'protected'. 


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@82530 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Erik Winlof
2014-09-03 11:36:59 +00:00
parent c941d1be30
commit d385bc9bb1
8 changed files with 105 additions and 18 deletions

View File

@@ -97,7 +97,7 @@ public class FileFolderServicePropagationTest extends TestCase
if (null == defaultPreservationValue)
{
defaultPreservationValue = fileFolderService.isPreserveModificationData();
defaultPreservationValue = fileFolderService.isPreserveAuditableData();
}
ServiceRegistry serviceRegistry = (ServiceRegistry) applicationContext.getBean(ServiceRegistry.SERVICE_REGISTRY);
@@ -162,7 +162,7 @@ public class FileFolderServicePropagationTest extends TestCase
public void tearDown() throws Exception
{
// Resetting to default value...
fileFolderService.setPreserveModificationData(defaultPreservationValue);
fileFolderService.setPreserveAuditableData(defaultPreservationValue);
transactionService.getRetryingTransactionHelper().doInTransaction(new RetryingTransactionCallback<Void>()
{
@@ -197,7 +197,7 @@ public class FileFolderServicePropagationTest extends TestCase
}
// Enabling preservation of modification properties data...
fileFolderService.setPreserveModificationData(true);
fileFolderService.setPreserveAuditableData(true);
transactionService.getRetryingTransactionHelper().doInTransaction(new RetryingTransactionCallback<Void>()
{
@Override
@@ -223,7 +223,7 @@ public class FileFolderServicePropagationTest extends TestCase
}
// Enabling preservation of modification properties data...
fileFolderService.setPreserveModificationData(true);
fileFolderService.setPreserveAuditableData(true);
transactionService.getRetryingTransactionHelper().doInTransaction(new RetryingTransactionCallback<Void>()
{
@Override
@@ -249,7 +249,7 @@ public class FileFolderServicePropagationTest extends TestCase
}
// Enabling preservation of modification properties data...
fileFolderService.setPreserveModificationData(true);
fileFolderService.setPreserveAuditableData(true);
transactionService.getRetryingTransactionHelper().doInTransaction(new RetryingTransactionCallback<Void>()
{
@Override
@@ -297,7 +297,7 @@ public class FileFolderServicePropagationTest extends TestCase
}
// Disabling preservation of modification properties data...
fileFolderService.setPreserveModificationData(false);
fileFolderService.setPreserveAuditableData(false);
transactionService.getRetryingTransactionHelper().doInTransaction(new RetryingTransactionCallback<Void>()
{
@Override
@@ -325,7 +325,7 @@ public class FileFolderServicePropagationTest extends TestCase
}
// Disabling preservation of modification properties data...
fileFolderService.setPreserveModificationData(false);
fileFolderService.setPreserveAuditableData(false);
transactionService.getRetryingTransactionHelper().doInTransaction(new RetryingTransactionCallback<Void>()
{
@Override
@@ -353,7 +353,7 @@ public class FileFolderServicePropagationTest extends TestCase
}
// Disabling preservation of modification properties data...
fileFolderService.setPreserveModificationData(false);
fileFolderService.setPreserveAuditableData(false);
transactionService.getRetryingTransactionHelper().doInTransaction(new RetryingTransactionCallback<Void>()
{
@Override

View File

@@ -58,7 +58,7 @@ import org.springframework.orm.hibernate3.LocalSessionFactoryBean;
public class AbstractPermissionTest extends TestCase
{
private static ApplicationContext applicationContext = ApplicationContextHelper.getApplicationContext();
protected static ApplicationContext applicationContext = ApplicationContextHelper.getApplicationContext();
protected static final String ROLE_AUTHENTICATED = "ROLE_AUTHENTICATED";

View File

@@ -27,6 +27,7 @@ import net.sf.acegisecurity.Authentication;
import net.sf.acegisecurity.GrantedAuthority;
import org.alfresco.model.ContentModel;
import org.alfresco.repo.domain.permissions.ADMAccessControlListDAO;
import org.alfresco.repo.model.filefolder.FileFolderServiceImpl;
import org.alfresco.repo.security.authentication.AuthenticationUtil;
import org.alfresco.repo.security.permissions.ACLType;
@@ -3383,6 +3384,47 @@ public class PermissionServiceTest extends AbstractPermissionTest
//assertTrue("Time was "+(end - start)/1000000000.0f, end == start);
}
public void testPreserveAuditableData()
{
ADMAccessControlListDAO accessControlListDao = (ADMAccessControlListDAO) applicationContext.getBean("admNodeACLDAO");
boolean preserveAuditableData = accessControlListDao.isPreserveAuditableData();
runAs("admin");
personService.getPerson("andy");
personService.getPerson("userTwo");
NodeRef folder = nodeService.createNode(rootNodeRef, ContentModel.ASSOC_CHILDREN, QName.createQName("{namespace}Folder"), ContentModel.TYPE_FOLDER).getChildRef();;
NodeRef content1 = nodeService.createNode(folder, ContentModel.ASSOC_CHILDREN, QName.createQName("{namespace}content1"), ContentModel.TYPE_CONTENT).getChildRef();;
NodeRef content2 = nodeService.createNode(folder, ContentModel.ASSOC_CHILDREN, QName.createQName("{namespace}content2"), ContentModel.TYPE_CONTENT).getChildRef();;
try
{
permissionService.setPermission(folder, "andy", PermissionService.COORDINATOR, true);
assertEquals("admin", nodeService.getProperty(content1, ContentModel.PROP_MODIFIER));
accessControlListDao.setPreserveAuditableData(true);
runAs("andy");
permissionService.setPermission(content1, "userTwo", PermissionService.COORDINATOR, true);
assertEquals("admin", nodeService.getProperty(content1, ContentModel.PROP_MODIFIER));
accessControlListDao.setPreserveAuditableData(false);
permissionService.setPermission(content2, "userTwo", PermissionService.COORDINATOR, true);
assertEquals("andy", nodeService.getProperty(content2, ContentModel.PROP_MODIFIER));
}
finally
{
accessControlListDao.setPreserveAuditableData(preserveAuditableData);
if (folder != null)
{
nodeService.deleteNode(folder);
}
}
}
public void xtestFindNodesByPermission()