mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
Merged V2.2 to HEAD
7732: Support to cache null QName look ups ... 7733: Support for store ACLs 7741: Fix for over keen stiore ACLs .... 7794: Fix for WCM-1019, tasks show all assets as modified when only one has 7996: Fix for AWC-1519: cancelling discussion creation results in error git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@8448 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -61,11 +61,9 @@ import org.alfresco.util.ISO9075;
|
||||
import org.alfresco.web.app.servlet.DownloadContentServlet;
|
||||
import org.alfresco.web.bean.repository.Repository;
|
||||
|
||||
|
||||
// TODO: DownloadServlet - use of request parameter for property name?
|
||||
// TODO: Anyway to switch content view url link / property value text?
|
||||
|
||||
|
||||
/**
|
||||
* Backing bean to support the Admin Node Browser
|
||||
*/
|
||||
@@ -90,18 +88,20 @@ public class AdminNodeBrowseBean implements Serializable
|
||||
private String query = null;
|
||||
private SearchResults searchResults = new SearchResults((List<NodeRef>) null);
|
||||
|
||||
// stores and node
|
||||
transient private DataModel stores = null;
|
||||
private NodeRef nodeRef = null;
|
||||
private QName nodeType = null;
|
||||
private Path primaryPath = null;
|
||||
private Boolean inheritPermissions = null;
|
||||
|
||||
// stores and node
|
||||
transient private DataModel stores = null;
|
||||
transient private DataModel parents = null;
|
||||
transient private DataModel aspects = null;
|
||||
transient private DataModel properties = null;
|
||||
transient private DataModel children = null;
|
||||
transient private DataModel assocs = null;
|
||||
private Boolean inheritPermissions = null;
|
||||
transient private DataModel permissions = null;
|
||||
transient private DataModel permissionMasks = null;
|
||||
transient private DataModel avmStoreProps = null;
|
||||
|
||||
// supporting repository services
|
||||
@@ -262,6 +262,7 @@ public class AdminNodeBrowseBean implements Serializable
|
||||
assocs = null;
|
||||
inheritPermissions = null;
|
||||
permissions = null;
|
||||
permissionMasks = null;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -394,6 +395,30 @@ public class AdminNodeBrowseBean implements Serializable
|
||||
return permissions;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the current node permissions
|
||||
*
|
||||
* @return the permissions
|
||||
*/
|
||||
public DataModel getStorePermissionMasks()
|
||||
{
|
||||
if (permissionMasks == null)
|
||||
{
|
||||
if (nodeRef.getStoreRef().getProtocol().equals(StoreRef.PROTOCOL_AVM))
|
||||
{
|
||||
List<AccessPermission> nodePermissions = new ArrayList<AccessPermission>(getPermissionService().getAllSetPermissions(nodeRef.getStoreRef()));
|
||||
permissionMasks = new ListDataModel(nodePermissions);
|
||||
}
|
||||
else
|
||||
{
|
||||
List<NoStoreMask> noReadPermissions = new ArrayList<NoStoreMask>(1);
|
||||
noReadPermissions.add(new NoStoreMask());
|
||||
permissionMasks = new ListDataModel(noReadPermissions);
|
||||
}
|
||||
}
|
||||
return permissionMasks;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the current node children
|
||||
*
|
||||
@@ -684,9 +709,13 @@ public class AdminNodeBrowseBean implements Serializable
|
||||
public class Property
|
||||
{
|
||||
private QName name;
|
||||
|
||||
private boolean isCollection = false;
|
||||
|
||||
private DataModel values;
|
||||
|
||||
private String datatype;
|
||||
|
||||
private String residual;
|
||||
|
||||
/**
|
||||
@@ -788,7 +817,6 @@ public class AdminNodeBrowseBean implements Serializable
|
||||
return isCollection;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Value wrapper
|
||||
*/
|
||||
@@ -908,6 +936,26 @@ public class AdminNodeBrowseBean implements Serializable
|
||||
}
|
||||
}
|
||||
|
||||
public static class NoStoreMask implements Serializable
|
||||
{
|
||||
private static final long serialVersionUID = -6256369557521402921L;
|
||||
|
||||
public String getPermission()
|
||||
{
|
||||
return "All <No Mask>";
|
||||
}
|
||||
|
||||
public String getAuthority()
|
||||
{
|
||||
return "All";
|
||||
}
|
||||
|
||||
public String getAccessStatus()
|
||||
{
|
||||
return "Allowed";
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Wrapper class for Search Results
|
||||
*/
|
||||
@@ -979,5 +1027,4 @@ public class AdminNodeBrowseBean implements Serializable
|
||||
private static final long serialVersionUID = 4154583769762846020L;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -180,16 +180,15 @@ public class CreateDiscussionDialog extends CreateTopicDialog
|
||||
tx.begin();
|
||||
|
||||
// remove the discussable aspect from the node we were going to discuss!
|
||||
// AWC-1519: removing the aspect that defines the child association now does the
|
||||
// cascade delete so we no longer have to delete the child explicitly
|
||||
this.getNodeService().removeAspect(this.discussingNodeRef, ForumModel.ASPECT_DISCUSSABLE);
|
||||
|
||||
// delete the forum space created when the wizard started
|
||||
Node forumNode = this.navigator.getCurrentNode();
|
||||
this.getNodeService().deleteNode(forumNode.getNodeRef());
|
||||
|
||||
// commit the transaction
|
||||
tx.commit();
|
||||
|
||||
// remove this node from the breadcrumb if required
|
||||
Node forumNode = this.navigator.getCurrentNode();
|
||||
this.browseBean.removeSpaceFromBreadcrumb(forumNode);
|
||||
|
||||
// clear action context
|
||||
|
@@ -131,11 +131,12 @@ public class AVMWorkflowUtil extends WorkflowUtil
|
||||
|
||||
avmService.setNodeProperty(packagesPath, WorkflowModel.PROP_IS_SYSTEM_PACKAGE, new PropertyValue(DataTypeDefinition.BOOLEAN, true));
|
||||
|
||||
// apply global permission to workflow package
|
||||
// TODO: Determine appropriate permissions
|
||||
final ServiceRegistry services = Repository.getServiceRegistry(FacesContext.getCurrentInstance());
|
||||
final PermissionService permissionService = services.getPermissionService();
|
||||
permissionService.setPermission(packageNodeRef, PermissionService.ALL_AUTHORITIES, PermissionService.ALL_PERMISSIONS, true);
|
||||
// NOTE: WCM-1019: As permissions are now implemented for AVM nodes we no longer need to set permisssions here
|
||||
// as they will be inherited from the store the workflow store is layered over.
|
||||
|
||||
//final ServiceRegistry services = Repository.getServiceRegistry(FacesContext.getCurrentInstance());
|
||||
//final PermissionService permissionService = services.getPermissionService();
|
||||
//permissionService.setPermission(packageNodeRef, PermissionService.ALL_AUTHORITIES, PermissionService.ALL_PERMISSIONS, true);
|
||||
|
||||
return packageNodeRef;
|
||||
}
|
||||
|
@@ -199,8 +199,11 @@ public final class SandboxFactory
|
||||
// apply READ permissions for all users
|
||||
NodeRef dirRef = AVMNodeConverter.ToNodeRef(-1, AVMUtil.buildStoreRootPath(storeName));
|
||||
permissionService.setPermission(dirRef, PermissionService.ALL_AUTHORITIES, PermissionService.READ, true);
|
||||
// Set store permission mask
|
||||
permissionService.setPermission(dirRef.getStoreRef(), PermissionService.ALL_AUTHORITIES, PermissionService.READ, true);
|
||||
|
||||
// Apply sepcific user permissions as set on the web project
|
||||
// All these will be masked out
|
||||
List<ChildAssociationRef> userInfoRefs = nodeService.getChildAssocs(
|
||||
webProjectNodeRef, WCMAppModel.ASSOC_WEBUSER, RegexQNamePattern.MATCH_ALL);
|
||||
for (ChildAssociationRef ref : userInfoRefs)
|
||||
@@ -218,6 +221,7 @@ public final class SandboxFactory
|
||||
public static void updateStagingAreaManagers(String storeId,
|
||||
NodeRef webProjectNodeRef, final List<String> managers)
|
||||
{
|
||||
// The stores have the mask set in updateSandboxManagers
|
||||
String storeName = AVMUtil.buildStagingStoreName(storeId);
|
||||
ServiceRegistry services = Repository.getServiceRegistry(FacesContext.getCurrentInstance());
|
||||
PermissionService permissionService = services.getPermissionService();
|
||||
@@ -282,16 +286,16 @@ public final class SandboxFactory
|
||||
JNDIConstants.DIR_DEFAULT_WWW);
|
||||
NodeRef dirRef = AVMNodeConverter.ToNodeRef(-1, AVMUtil.buildStoreRootPath(userStoreName));
|
||||
|
||||
// TODO: Apply access mask to the store and ACls to the staging area
|
||||
// Apply access mask to the store (ACls are applie to the staging area)
|
||||
|
||||
// apply the user role permissions to the sandbox
|
||||
//permissionService.setPermission(dirRef, username, role, true);
|
||||
//permissionService.setPermission(dirRef, PermissionService.ALL_AUTHORITIES, PermissionService.READ, true);
|
||||
permissionService.setPermission(dirRef.getStoreRef(), username, PermissionService.ALL_PERMISSIONS, true);
|
||||
permissionService.setPermission(dirRef.getStoreRef(), PermissionService.ALL_AUTHORITIES, PermissionService.READ, true);
|
||||
// apply the manager role permission for each manager in the web project
|
||||
//for (String manager : managers)
|
||||
//{
|
||||
// permissionService.setPermission(dirRef, manager, AVMUtil.ROLE_CONTENT_MANAGER, true);
|
||||
//}
|
||||
for (String manager : managers)
|
||||
{
|
||||
permissionService.setPermission(dirRef.getStoreRef(), manager, AVMUtil.ROLE_CONTENT_MANAGER, true);
|
||||
}
|
||||
|
||||
// tag the store with the store type
|
||||
avmService.setStoreProperty(userStoreName,
|
||||
@@ -330,15 +334,16 @@ public final class SandboxFactory
|
||||
JNDIConstants.DIR_DEFAULT_WWW);
|
||||
dirRef = AVMNodeConverter.ToNodeRef(-1, AVMUtil.buildStoreRootPath(previewStoreName));
|
||||
|
||||
// TODO: Apply access mask to the store
|
||||
// Apply access mask to the store (ACls are applied to the staging area)
|
||||
|
||||
// apply the user role permissions to the sandbox
|
||||
//permissionService.setPermission(dirRef, username, role, true);
|
||||
//permissionService.setPermission(dirRef, PermissionService.ALL_AUTHORITIES, PermissionService.READ, true);
|
||||
permissionService.setPermission(dirRef.getStoreRef(), username, PermissionService.ALL_PERMISSIONS, true);
|
||||
permissionService.setPermission(dirRef.getStoreRef(), PermissionService.ALL_AUTHORITIES, PermissionService.READ, true);
|
||||
// apply the manager role permission for each manager in the web project
|
||||
//for (String manager : managers)
|
||||
//{
|
||||
// permissionService.setPermission(dirRef, manager, AVMUtil.ROLE_CONTENT_MANAGER, true);
|
||||
//}
|
||||
for (String manager : managers)
|
||||
{
|
||||
permissionService.setPermission(dirRef.getStoreRef(), manager, AVMUtil.ROLE_CONTENT_MANAGER, true);
|
||||
}
|
||||
|
||||
// tag the store with the store type
|
||||
avmService.setStoreProperty(previewStoreName,
|
||||
@@ -513,21 +518,21 @@ public final class SandboxFactory
|
||||
final String userStoreName = AVMUtil.buildUserMainStoreName(storeId, username);
|
||||
final String previewStoreName = AVMUtil.buildUserPreviewStoreName(storeId, username);
|
||||
|
||||
// TODO: Fix to apply application mask to the stores and ACLs to the staging area
|
||||
// Apply masks to the stores
|
||||
|
||||
// apply the manager role permission to the user main sandbox for each manager
|
||||
//NodeRef dirRef = AVMNodeConverter.ToNodeRef(-1, AVMUtil.buildStoreRootPath(userStoreName));
|
||||
//for (String manager : managers)
|
||||
//{
|
||||
// permissionService.setPermission(dirRef, manager, AVMUtil.ROLE_CONTENT_MANAGER, true);
|
||||
//}
|
||||
NodeRef dirRef = AVMNodeConverter.ToNodeRef(-1, AVMUtil.buildStoreRootPath(userStoreName));
|
||||
for (String manager : managers)
|
||||
{
|
||||
permissionService.setPermission(dirRef.getStoreRef(), manager, AVMUtil.ROLE_CONTENT_MANAGER, true);
|
||||
}
|
||||
|
||||
// apply the manager role permission to the user preview sandbox for each manager
|
||||
//dirRef = AVMNodeConverter.ToNodeRef(-1, AVMUtil.buildStoreRootPath(previewStoreName));
|
||||
//for (String manager : managers)
|
||||
//{
|
||||
// permissionService.setPermission(dirRef, manager, AVMUtil.ROLE_CONTENT_MANAGER, true);
|
||||
// }
|
||||
dirRef = AVMNodeConverter.ToNodeRef(-1, AVMUtil.buildStoreRootPath(previewStoreName));
|
||||
for (String manager : managers)
|
||||
{
|
||||
permissionService.setPermission(dirRef.getStoreRef(), manager, AVMUtil.ROLE_CONTENT_MANAGER, true);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -193,6 +193,27 @@
|
||||
</h:column>
|
||||
</h:dataTable>
|
||||
|
||||
<h:dataTable id="storePermissionMasks" border="1" value="#{AdminNodeBrowseBean.storePermissionMasks}" var="permission" styleClass="nodeBrowserTable">
|
||||
<h:column>
|
||||
<f:facet name="header">
|
||||
<h:outputText value="Store Permission"/>
|
||||
</f:facet>
|
||||
<h:outputText value="#{permission.permission}"/>
|
||||
</h:column>
|
||||
<h:column>
|
||||
<f:facet name="header">
|
||||
<h:outputText value="To Authority"/>
|
||||
</f:facet>
|
||||
<h:outputText value="#{permission.authority}"/>
|
||||
</h:column>
|
||||
<h:column>
|
||||
<f:facet name="header">
|
||||
<h:outputText value="Access"/>
|
||||
</f:facet>
|
||||
<h:outputText value="#{permission.accessStatus}"/>
|
||||
</h:column>
|
||||
</h:dataTable>
|
||||
|
||||
<br/>
|
||||
<h:outputText styleClass="mainTitle" value="Children"/>
|
||||
|
||||
|
Reference in New Issue
Block a user