-
Type: Improvement
-
Status: Closed
-
Priority: Critical
-
Resolution: Completed
-
Affects Version/s: None
-
Fix Version/s: 1.7.0
-
Component/s: CMA Alfresco, CMA API
-
Labels:None
OBJECTIVE:
Knowing whether the currently authenticated user can "ReadProperties", "ReadContent", "WriteProperties", etc on the returned nodes, so, we can enable/disable UI functionality based on permissions.
SPECIFICATION:
We need a SearchService query method with the following signature:
public java.util.List<Node> query(Ticket ticket,
org.alfresco.service.cmr.repository.StoreRef store,
SearchService.QueryLanguage queryLanguage,
java.lang.String query,
java.util.List<org.alfresco.service.namespace.QName> requiredProperties,
java.util.List<String> requiredPermissions, // *************** NEW PARAMETER **************
boolean returnPeerAssocs,
boolean returnChildAssocs,
boolean returnAspects,
int maxResults)
throws InvalidTicketException,
CmaRuntimeException
//**************************************************************************************
java.util.List<String> requiredPermissions = new java.util.List<String>(5);
requiredPermissions.add("ReadProperties");
requiredPermissions.add("ReadContent");
requiredPermissions.add("Delete");
requiredPermissions.add("WriteProperties");
requiredPermissions.add("WriteContent");
//**************************************************************************************
The resulting Node elements in java.util.List<Node> should have the requiredPermissions and their status (ALLOWED, DENIED)
//**************************************************************************************
node.getPermissions().get(0).getPermission() ---> "ReadProperties"
node.getPermissions().get(0).getAccessStatus() ---> AccessStatus.ALLOWED
node.getPermissions().get(1).getPermission() ---> "ReadContent"
node.getPermissions().get(1).getAccessStatus() ---> AccessStatus.ALLOWED
node.getPermissions().get(2).getPermission() ---> "Delete"
node.getPermissions().get(2).getAccessStatus() ---> AccessStatus.DENIED
node.getPermissions().get(3).getPermission() ---> "WriteProperties"
node.getPermissions().get(3).getAccessStatus() ---> AccessStatus.ALLOWED
node.getPermissions().get(4).getPermission() ---> "WriteContent"
node.getPermissions().get(4).getAccessStatus() ---> AccessStatus.DENIED
//**************************************************************************************
Knowing whether the currently authenticated user can "ReadProperties", "ReadContent", "WriteProperties", etc on the returned nodes, so, we can enable/disable UI functionality based on permissions.
SPECIFICATION:
We need a SearchService query method with the following signature:
public java.util.List<Node> query(Ticket ticket,
org.alfresco.service.cmr.repository.StoreRef store,
SearchService.QueryLanguage queryLanguage,
java.lang.String query,
java.util.List<org.alfresco.service.namespace.QName> requiredProperties,
java.util.List<String> requiredPermissions, // *************** NEW PARAMETER **************
boolean returnPeerAssocs,
boolean returnChildAssocs,
boolean returnAspects,
int maxResults)
throws InvalidTicketException,
CmaRuntimeException
//**************************************************************************************
java.util.List<String> requiredPermissions = new java.util.List<String>(5);
requiredPermissions.add("ReadProperties");
requiredPermissions.add("ReadContent");
requiredPermissions.add("Delete");
requiredPermissions.add("WriteProperties");
requiredPermissions.add("WriteContent");
//**************************************************************************************
The resulting Node elements in java.util.List<Node> should have the requiredPermissions and their status (ALLOWED, DENIED)
//**************************************************************************************
node.getPermissions().get(0).getPermission() ---> "ReadProperties"
node.getPermissions().get(0).getAccessStatus() ---> AccessStatus.ALLOWED
node.getPermissions().get(1).getPermission() ---> "ReadContent"
node.getPermissions().get(1).getAccessStatus() ---> AccessStatus.ALLOWED
node.getPermissions().get(2).getPermission() ---> "Delete"
node.getPermissions().get(2).getAccessStatus() ---> AccessStatus.DENIED
node.getPermissions().get(3).getPermission() ---> "WriteProperties"
node.getPermissions().get(3).getAccessStatus() ---> AccessStatus.ALLOWED
node.getPermissions().get(4).getPermission() ---> "WriteContent"
node.getPermissions().get(4).getAccessStatus() ---> AccessStatus.DENIED
//**************************************************************************************