filtering permissions plus fix to json response builder
This commit is contained in:
@@ -4,7 +4,10 @@ import java.io.Serializable;
|
||||
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
|
||||
import org.codehaus.jackson.map.annotate.JsonFilter;
|
||||
|
||||
@XmlRootElement(name = "permission")
|
||||
@JsonFilter("myFilter")
|
||||
public class PermissionData implements Serializable {
|
||||
|
||||
private Long id;
|
||||
|
||||
@@ -6,11 +6,12 @@ import javax.ws.rs.Consumes;
|
||||
import javax.ws.rs.GET;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.core.Context;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import javax.ws.rs.core.Response;
|
||||
import javax.ws.rs.core.UriInfo;
|
||||
|
||||
import org.mifosng.data.PermissionData;
|
||||
import org.mifosng.data.PermissionList;
|
||||
import org.mifosng.platform.api.infrastructure.ApiJSONFormattingService;
|
||||
import org.mifosng.platform.user.service.PermissionReadPlatformService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Scope;
|
||||
@@ -20,16 +21,24 @@ import org.springframework.stereotype.Component;
|
||||
@Component
|
||||
@Scope("singleton")
|
||||
public class PermissionApiResource {
|
||||
private String allowedFieldList = "";
|
||||
|
||||
@Autowired
|
||||
private PermissionReadPlatformService permissionReadPlatformService;
|
||||
|
||||
|
||||
@Autowired
|
||||
private ApiJSONFormattingService jsonFormattingService;
|
||||
|
||||
@GET
|
||||
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
|
||||
@Produces({MediaType.APPLICATION_JSON})
|
||||
public Response retrieveAllPermissions() {
|
||||
public String retrieveAllPermissions(@Context UriInfo uriInfo) {
|
||||
|
||||
Collection<PermissionData> permissions = this.permissionReadPlatformService.retrieveAllPermissions();
|
||||
return Response.ok().entity(new PermissionList(permissions)).build();
|
||||
|
||||
//TODO - setting selectedFields just to not show org_id, can be set be to "" after org_id is removed
|
||||
String selectedFields = "id,name,description,code,groupType";
|
||||
return this.jsonFormattingService.convertRequest(permissions,
|
||||
allowedFieldList, selectedFields, uriInfo.getQueryParameters());
|
||||
}
|
||||
}
|
||||
+8
-2
@@ -46,9 +46,15 @@ public class ApiJSONFormattingServiceImpl implements ApiJSONFormattingService {
|
||||
selectedFieldsSet.add(st.nextToken().trim());
|
||||
}
|
||||
|
||||
Boolean first = true;
|
||||
for (String paramField : paramFieldsSet) {
|
||||
if (selectedFieldsSet.contains(paramField))
|
||||
fieldList += paramField;
|
||||
if (selectedFieldsSet.contains(paramField)) {
|
||||
if (first) {
|
||||
fieldList = paramField;
|
||||
first = false;
|
||||
} else
|
||||
fieldList += "," + paramField;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user