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 javax.xml.bind.annotation.XmlRootElement;
|
||||||
|
|
||||||
|
import org.codehaus.jackson.map.annotate.JsonFilter;
|
||||||
|
|
||||||
@XmlRootElement(name = "permission")
|
@XmlRootElement(name = "permission")
|
||||||
|
@JsonFilter("myFilter")
|
||||||
public class PermissionData implements Serializable {
|
public class PermissionData implements Serializable {
|
||||||
|
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|||||||
@@ -6,11 +6,12 @@ import javax.ws.rs.Consumes;
|
|||||||
import javax.ws.rs.GET;
|
import javax.ws.rs.GET;
|
||||||
import javax.ws.rs.Path;
|
import javax.ws.rs.Path;
|
||||||
import javax.ws.rs.Produces;
|
import javax.ws.rs.Produces;
|
||||||
|
import javax.ws.rs.core.Context;
|
||||||
import javax.ws.rs.core.MediaType;
|
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.PermissionData;
|
||||||
import org.mifosng.data.PermissionList;
|
import org.mifosng.platform.api.infrastructure.ApiJSONFormattingService;
|
||||||
import org.mifosng.platform.user.service.PermissionReadPlatformService;
|
import org.mifosng.platform.user.service.PermissionReadPlatformService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.context.annotation.Scope;
|
import org.springframework.context.annotation.Scope;
|
||||||
@@ -20,16 +21,24 @@ import org.springframework.stereotype.Component;
|
|||||||
@Component
|
@Component
|
||||||
@Scope("singleton")
|
@Scope("singleton")
|
||||||
public class PermissionApiResource {
|
public class PermissionApiResource {
|
||||||
|
private String allowedFieldList = "";
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private PermissionReadPlatformService permissionReadPlatformService;
|
private PermissionReadPlatformService permissionReadPlatformService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ApiJSONFormattingService jsonFormattingService;
|
||||||
|
|
||||||
@GET
|
@GET
|
||||||
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
|
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
|
||||||
@Produces({MediaType.APPLICATION_JSON})
|
@Produces({MediaType.APPLICATION_JSON})
|
||||||
public Response retrieveAllPermissions() {
|
public String retrieveAllPermissions(@Context UriInfo uriInfo) {
|
||||||
|
|
||||||
Collection<PermissionData> permissions = this.permissionReadPlatformService.retrieveAllPermissions();
|
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());
|
selectedFieldsSet.add(st.nextToken().trim());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Boolean first = true;
|
||||||
for (String paramField : paramFieldsSet) {
|
for (String paramField : paramFieldsSet) {
|
||||||
if (selectedFieldsSet.contains(paramField))
|
if (selectedFieldsSet.contains(paramField)) {
|
||||||
fieldList += paramField;
|
if (first) {
|
||||||
|
fieldList = paramField;
|
||||||
|
first = false;
|
||||||
|
} else
|
||||||
|
fieldList += "," + paramField;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user