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