filtering permissions/roles - working - but rethinking filters just a little bit - not much!
This commit is contained in:
@@ -4,9 +4,11 @@ import java.io.Serializable;
|
|||||||
|
|
||||||
import javax.xml.bind.annotation.XmlRootElement;
|
import javax.xml.bind.annotation.XmlRootElement;
|
||||||
|
|
||||||
|
import org.codehaus.jackson.annotate.JsonIgnoreProperties;
|
||||||
import org.codehaus.jackson.map.annotate.JsonFilter;
|
import org.codehaus.jackson.map.annotate.JsonFilter;
|
||||||
|
|
||||||
@XmlRootElement(name = "permission")
|
@XmlRootElement(name = "permission")
|
||||||
|
@JsonIgnoreProperties({ "orgId" })
|
||||||
@JsonFilter("permissionFilter")
|
@JsonFilter("permissionFilter")
|
||||||
public class PermissionData implements Serializable {
|
public class PermissionData implements Serializable {
|
||||||
|
|
||||||
|
|||||||
@@ -5,9 +5,11 @@ import java.util.Collection;
|
|||||||
|
|
||||||
import javax.xml.bind.annotation.XmlRootElement;
|
import javax.xml.bind.annotation.XmlRootElement;
|
||||||
|
|
||||||
|
import org.codehaus.jackson.annotate.JsonIgnoreProperties;
|
||||||
import org.codehaus.jackson.map.annotate.JsonFilter;
|
import org.codehaus.jackson.map.annotate.JsonFilter;
|
||||||
|
|
||||||
@XmlRootElement(name = "role")
|
@XmlRootElement(name = "role")
|
||||||
|
@JsonIgnoreProperties({ "orgId" })
|
||||||
@JsonFilter("roleFilter")
|
@JsonFilter("roleFilter")
|
||||||
public class RoleData {
|
public class RoleData {
|
||||||
|
|
||||||
|
|||||||
+12
-11
@@ -24,22 +24,23 @@ public class PermissionApiResource {
|
|||||||
private String allowedFieldList = "";
|
private String allowedFieldList = "";
|
||||||
private String filterName = "permissionFilter";
|
private String filterName = "permissionFilter";
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private PermissionReadPlatformService permissionReadPlatformService;
|
private PermissionReadPlatformService permissionReadPlatformService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ApiJSONFormattingService jsonFormattingService;
|
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 String retrieveAllPermissions(@Context UriInfo uriInfo) {
|
public String retrieveAllPermissions(@Context UriInfo uriInfo) {
|
||||||
|
|
||||||
Collection<PermissionData> permissions = this.permissionReadPlatformService.retrieveAllPermissions();
|
Collection<PermissionData> permissions = this.permissionReadPlatformService
|
||||||
|
.retrieveAllPermissions();
|
||||||
//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";
|
String selectedFields = "";
|
||||||
return this.jsonFormattingService.convertRequest(permissions, filterName,
|
return this.jsonFormattingService.convertRequest(permissions,
|
||||||
allowedFieldList, selectedFields, uriInfo.getQueryParameters());
|
filterName, allowedFieldList, selectedFields,
|
||||||
|
uriInfo.getQueryParameters());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -72,7 +72,7 @@ public class RoleApiResource {
|
|||||||
RoleData role = new RoleData();
|
RoleData role = new RoleData();
|
||||||
role.setAvailablePermissions(allPermissions);
|
role.setAvailablePermissions(allPermissions);
|
||||||
|
|
||||||
String selectedFields = "allowedFieldList";
|
String selectedFields = allowedFieldList;
|
||||||
return this.jsonFormattingService.convertRequest(role, filterName,
|
return this.jsonFormattingService.convertRequest(role, filterName,
|
||||||
allowedFieldList, selectedFields, uriInfo.getQueryParameters());
|
allowedFieldList, selectedFields, uriInfo.getQueryParameters());
|
||||||
}
|
}
|
||||||
@@ -102,9 +102,7 @@ public class RoleApiResource {
|
|||||||
role.setAvailablePermissions(availablePermissions);
|
role.setAvailablePermissions(availablePermissions);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO - setting selectedFields just to not show org_id, can be set be
|
String selectedFields = "";
|
||||||
// to "" after org_id is removed
|
|
||||||
String selectedFields = "id,name,description,selectedPermissions";
|
|
||||||
return this.jsonFormattingService.convertRequest(role, filterName,
|
return this.jsonFormattingService.convertRequest(role, filterName,
|
||||||
allowedFieldList, selectedFields, uriInfo.getQueryParameters());
|
allowedFieldList, selectedFields, uriInfo.getQueryParameters());
|
||||||
}
|
}
|
||||||
|
|||||||
+47
-14
@@ -14,7 +14,6 @@ import org.codehaus.jackson.map.ObjectWriter;
|
|||||||
import org.codehaus.jackson.map.ser.FilterProvider;
|
import org.codehaus.jackson.map.ser.FilterProvider;
|
||||||
import org.codehaus.jackson.map.ser.impl.SimpleBeanPropertyFilter;
|
import org.codehaus.jackson.map.ser.impl.SimpleBeanPropertyFilter;
|
||||||
import org.codehaus.jackson.map.ser.impl.SimpleFilterProvider;
|
import org.codehaus.jackson.map.ser.impl.SimpleFilterProvider;
|
||||||
import org.mifosng.platform.api.ReportingApiResource;
|
|
||||||
import org.mifosng.platform.exceptions.PlatformInternalServerException;
|
import org.mifosng.platform.exceptions.PlatformInternalServerException;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
@@ -23,8 +22,9 @@ import org.springframework.stereotype.Service;
|
|||||||
@Service
|
@Service
|
||||||
public class ApiJSONFormattingServiceImpl implements ApiJSONFormattingService {
|
public class ApiJSONFormattingServiceImpl implements ApiJSONFormattingService {
|
||||||
|
|
||||||
private final static Logger logger = LoggerFactory.getLogger(ApiJSONFormattingServiceImpl.class);
|
private final static Logger logger = LoggerFactory
|
||||||
|
.getLogger(ApiJSONFormattingServiceImpl.class);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String convertRequest(Object dataObject, String filterName,
|
public String convertRequest(Object dataObject, String filterName,
|
||||||
String allowedFieldList, String selectedFields,
|
String allowedFieldList, String selectedFields,
|
||||||
@@ -47,7 +47,7 @@ public class ApiJSONFormattingServiceImpl implements ApiJSONFormattingService {
|
|||||||
paramFieldsSet.add(st.nextToken().trim());
|
paramFieldsSet.add(st.nextToken().trim());
|
||||||
}
|
}
|
||||||
Set<String> selectedFieldsSet = new HashSet<String>();
|
Set<String> selectedFieldsSet = new HashSet<String>();
|
||||||
st = new StringTokenizer(fields, ",");
|
st = new StringTokenizer(selectedFields, ",");
|
||||||
while (st.hasMoreTokens()) {
|
while (st.hasMoreTokens()) {
|
||||||
selectedFieldsSet.add(st.nextToken().trim());
|
selectedFieldsSet.add(st.nextToken().trim());
|
||||||
}
|
}
|
||||||
@@ -63,8 +63,6 @@ public class ApiJSONFormattingServiceImpl implements ApiJSONFormattingService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
logger.info("passed fields and is selected fields - Fieldlist: " + fieldList);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
fieldList = selectedFields;
|
fieldList = selectedFields;
|
||||||
@@ -98,17 +96,52 @@ public class ApiJSONFormattingServiceImpl implements ApiJSONFormattingService {
|
|||||||
filterFields.add(st.nextToken().trim());
|
filterFields.add(st.nextToken().trim());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (filterType.equals("I")) {
|
if (filterName.equals("roleFilter")) {
|
||||||
filters = new SimpleFilterProvider().addFilter(filterName,
|
|
||||||
SimpleBeanPropertyFilter
|
Set<String> permissionFields = new HashSet<String>();
|
||||||
.filterOutAllExcept(filterFields));
|
//Ask keith which ones to show
|
||||||
|
permissionFields.add("id");
|
||||||
|
permissionFields.add("name");
|
||||||
|
permissionFields.add("description");
|
||||||
|
permissionFields.add("code");
|
||||||
|
permissionFields.add("groupType");
|
||||||
|
|
||||||
|
if (filterType.equals("I")) {
|
||||||
|
filters = new SimpleFilterProvider()
|
||||||
|
.addFilter(
|
||||||
|
filterName,
|
||||||
|
SimpleBeanPropertyFilter
|
||||||
|
.filterOutAllExcept(filterFields))
|
||||||
|
.addFilter(
|
||||||
|
"permissionFilter",
|
||||||
|
SimpleBeanPropertyFilter
|
||||||
|
.filterOutAllExcept(permissionFields));
|
||||||
|
|
||||||
|
} else {
|
||||||
|
filters = new SimpleFilterProvider()
|
||||||
|
.addFilter(
|
||||||
|
filterName,
|
||||||
|
SimpleBeanPropertyFilter
|
||||||
|
.serializeAllExcept(filterFields))
|
||||||
|
.addFilter(
|
||||||
|
"permissionFilter",
|
||||||
|
SimpleBeanPropertyFilter
|
||||||
|
.filterOutAllExcept(permissionFields));
|
||||||
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
filters = new SimpleFilterProvider().addFilter(filterName,
|
|
||||||
SimpleBeanPropertyFilter
|
|
||||||
.serializeAllExcept(filterFields));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (filterType.equals("I")) {
|
||||||
|
filters = new SimpleFilterProvider().addFilter(filterName,
|
||||||
|
SimpleBeanPropertyFilter
|
||||||
|
.filterOutAllExcept(filterFields));
|
||||||
|
|
||||||
|
} else {
|
||||||
|
filters = new SimpleFilterProvider().addFilter(filterName,
|
||||||
|
SimpleBeanPropertyFilter
|
||||||
|
.serializeAllExcept(filterFields));
|
||||||
|
}
|
||||||
|
}
|
||||||
ObjectWriter jsonWriter = null;
|
ObjectWriter jsonWriter = null;
|
||||||
if (prettyOutput) {
|
if (prettyOutput) {
|
||||||
jsonWriter = new ObjectMapper()
|
jsonWriter = new ObjectMapper()
|
||||||
|
|||||||
Reference in New Issue
Block a user