mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
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:
@@ -23,9 +23,11 @@ import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.alfresco.model.ContentModel;
|
||||
import org.alfresco.repo.domain.node.NodeDAO;
|
||||
import org.alfresco.repo.domain.node.NodeIdAndAclId;
|
||||
import org.alfresco.repo.domain.permissions.AVMAccessControlListDAO.CounterSet;
|
||||
import org.alfresco.repo.policy.BehaviourFilter;
|
||||
import org.alfresco.repo.security.permissions.ACLType;
|
||||
import org.alfresco.repo.security.permissions.AccessControlList;
|
||||
import org.alfresco.repo.security.permissions.AccessControlListProperties;
|
||||
@@ -52,6 +54,9 @@ public class ADMAccessControlListDAO implements AccessControlListDAO
|
||||
private NodeDAO nodeDAO;
|
||||
|
||||
private AclDAO aclDaoComponent;
|
||||
|
||||
private BehaviourFilter behaviourFilter;
|
||||
private boolean preserveAuditableData = true;
|
||||
|
||||
public void setNodeDAO(NodeDAO nodeDAO)
|
||||
{
|
||||
@@ -62,6 +67,21 @@ public class ADMAccessControlListDAO implements AccessControlListDAO
|
||||
{
|
||||
this.aclDaoComponent = aclDaoComponent;
|
||||
}
|
||||
|
||||
public void setBehaviourFilter(BehaviourFilter behaviourFilter)
|
||||
{
|
||||
this.behaviourFilter = behaviourFilter;
|
||||
}
|
||||
|
||||
public void setPreserveAuditableData(boolean preserveAuditableData)
|
||||
{
|
||||
this.preserveAuditableData = preserveAuditableData;
|
||||
}
|
||||
|
||||
public boolean isPreserveAuditableData()
|
||||
{
|
||||
return preserveAuditableData;
|
||||
}
|
||||
|
||||
public void forceCopy(NodeRef nodeRef)
|
||||
{
|
||||
@@ -250,8 +270,24 @@ public class ADMAccessControlListDAO implements AccessControlListDAO
|
||||
|
||||
public void setAccessControlList(NodeRef nodeRef, Long aclId)
|
||||
{
|
||||
Long nodeId = getNodeIdNotNull(nodeRef);
|
||||
nodeDAO.setNodeAclId(nodeId, aclId);
|
||||
boolean auditableBehaviorWasDisabled = preserveAuditableData && behaviourFilter.isEnabled(ContentModel.ASPECT_AUDITABLE);
|
||||
if (auditableBehaviorWasDisabled)
|
||||
{
|
||||
behaviourFilter.disableBehaviour(ContentModel.ASPECT_AUDITABLE);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
Long nodeId = getNodeIdNotNull(nodeRef);
|
||||
nodeDAO.setNodeAclId(nodeId, aclId);
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (auditableBehaviorWasDisabled)
|
||||
{
|
||||
behaviourFilter.enableBehaviour(ContentModel.ASPECT_AUDITABLE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void setAccessControlList(NodeRef nodeRef, Acl acl)
|
||||
|
@@ -136,7 +136,7 @@ public class FileFolderServiceImpl extends AbstractBaseCopyService implements Fi
|
||||
private BehaviourFilter behaviourFilter;
|
||||
private NamedObjectRegistry<CannedQueryFactory<NodeRef>> cannedQueryRegistry;
|
||||
|
||||
private boolean preserveModificationData = true;
|
||||
private boolean preserveAuditableData = true;
|
||||
|
||||
// TODO: Replace this with a more formal means of identifying "system" folders (i.e. aspect or UUID)
|
||||
private List<String> systemPaths;
|
||||
@@ -216,14 +216,14 @@ public class FileFolderServiceImpl extends AbstractBaseCopyService implements Fi
|
||||
this.behaviourFilter = behaviourFilter;
|
||||
}
|
||||
|
||||
public void setPreserveModificationData(boolean preserveModificationData)
|
||||
public void setPreserveAuditableData(boolean preserveAuditableData)
|
||||
{
|
||||
this.preserveModificationData = preserveModificationData;
|
||||
this.preserveAuditableData = preserveAuditableData;
|
||||
}
|
||||
|
||||
public boolean isPreserveModificationData()
|
||||
public boolean isPreserveAuditableData()
|
||||
{
|
||||
return preserveModificationData;
|
||||
return preserveAuditableData;
|
||||
}
|
||||
|
||||
|
||||
@@ -1084,7 +1084,7 @@ public class FileFolderServiceImpl extends AbstractBaseCopyService implements Fi
|
||||
if (isPrimaryParent)
|
||||
{
|
||||
// move the node so that the association moves as well
|
||||
boolean auditableBehaviorWasDisabled = preserveModificationData && behaviourFilter.isEnabled(ContentModel.ASPECT_AUDITABLE);
|
||||
boolean auditableBehaviorWasDisabled = preserveAuditableData && behaviourFilter.isEnabled(ContentModel.ASPECT_AUDITABLE);
|
||||
if (auditableBehaviorWasDisabled)
|
||||
{
|
||||
behaviourFilter.disableBehaviour(ContentModel.ASPECT_AUDITABLE);
|
||||
|
Reference in New Issue
Block a user