mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
Merged V3.0 to HEAD
12349: Tweaked the Hibernate session helper to prevent initially-large sessions from drowning the flush code 12452: MT - fix ETHREEOH-1056 12453: MT - fix ETHREEOH-886 12460: MT - fix ETHREEOH-1013 git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@12536 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -38,6 +38,7 @@ import java.util.Set;
|
||||
|
||||
import org.alfresco.error.AlfrescoRuntimeException;
|
||||
import org.alfresco.model.ContentModel;
|
||||
import org.alfresco.repo.importer.view.NodeContext;
|
||||
import org.alfresco.repo.policy.BehaviourFilter;
|
||||
import org.alfresco.service.cmr.dictionary.AssociationDefinition;
|
||||
import org.alfresco.service.cmr.dictionary.ChildAssociationDefinition;
|
||||
@@ -966,6 +967,27 @@ public class ImporterComponent
|
||||
|
||||
return boundProperties;
|
||||
}
|
||||
|
||||
/**
|
||||
* Bind permissions - binds authorities
|
||||
*
|
||||
* @param properties
|
||||
* @return
|
||||
*/
|
||||
private List<AccessPermission> bindPermissions(List<AccessPermission> permissions)
|
||||
{
|
||||
List<AccessPermission> boundPermissions = new ArrayList<AccessPermission>(permissions.size());
|
||||
|
||||
for (AccessPermission permission : permissions)
|
||||
{
|
||||
AccessPermission ace = new NodeContext.ACE(permission.getAccessStatus(),
|
||||
bindPlaceHolder(permission.getAuthority(), binding),
|
||||
permission.getPermission());
|
||||
boundPermissions.add(ace);
|
||||
}
|
||||
|
||||
return boundPermissions;
|
||||
}
|
||||
|
||||
/**
|
||||
* Bind property value
|
||||
@@ -1249,7 +1271,8 @@ public class ImporterComponent
|
||||
AccessStatus writePermission = permissionService.hasPermission(nodeRef, PermissionService.CHANGE_PERMISSIONS);
|
||||
if (authenticationService.isCurrentUserTheSystemUser() || writePermission.equals(AccessStatus.ALLOWED))
|
||||
{
|
||||
permissions = node.getAccessControlEntries();
|
||||
permissions = bindPermissions(node.getAccessControlEntries());
|
||||
|
||||
for (AccessPermission permission : permissions)
|
||||
{
|
||||
permissionService.setPermission(nodeRef, permission.getAuthority(), permission.getPermission(), permission.getAccessStatus().equals(AccessStatus.ALLOWED));
|
||||
@@ -1433,7 +1456,9 @@ public class ImporterComponent
|
||||
{
|
||||
permissionService.setInheritParentPermissions(existingNodeRef, false);
|
||||
}
|
||||
permissions = node.getAccessControlEntries();
|
||||
|
||||
permissions = bindPermissions(node.getAccessControlEntries());
|
||||
|
||||
for (AccessPermission permission : permissions)
|
||||
{
|
||||
permissionService.setPermission(existingNodeRef, permission.getAuthority(), permission.getPermission(), permission.getAccessStatus().equals(AccessStatus.ALLOWED));
|
||||
@@ -1584,5 +1609,4 @@ public class ImporterComponent
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -375,10 +375,7 @@ public class NodeContext extends ElementContext
|
||||
permission = PermissionService.CONSUMER;
|
||||
}
|
||||
|
||||
ACE ace = new ACE();
|
||||
ace.accessStatus = accessStatus;
|
||||
ace.authority = authority;
|
||||
ace.permission = permission;
|
||||
ACE ace = new ACE(accessStatus, authority, permission);
|
||||
accessControlEntries.add(ace);
|
||||
}
|
||||
|
||||
@@ -502,12 +499,18 @@ public class NodeContext extends ElementContext
|
||||
/**
|
||||
* Access Control Entry
|
||||
*/
|
||||
private class ACE implements AccessPermission
|
||||
public static class ACE implements AccessPermission
|
||||
{
|
||||
private AccessStatus accessStatus;
|
||||
private String authority;
|
||||
private String permission;
|
||||
private int position;
|
||||
|
||||
public ACE(AccessStatus accessStatus, String authority, String permission)
|
||||
{
|
||||
this.accessStatus = accessStatus;
|
||||
this.authority = authority;
|
||||
this.permission = permission;
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
|
Reference in New Issue
Block a user