some formatting changes. sorry.

This commit is contained in:
Keith Woodlock
2012-11-23 17:53:06 +00:00
parent c36370ae83
commit d0ec329115
9 changed files with 97 additions and 98 deletions
@@ -37,8 +37,8 @@ public class PermissionsApiResource {
private final String resourceNameForPermissions = "PERMISSION"; private final String resourceNameForPermissions = "PERMISSION";
@GET @GET
@Consumes({MediaType.APPLICATION_JSON}) @Consumes({ MediaType.APPLICATION_JSON })
@Produces({MediaType.APPLICATION_JSON}) @Produces({ MediaType.APPLICATION_JSON })
public String retrieveAllPermissions(@Context final UriInfo uriInfo) { public String retrieveAllPermissions(@Context final UriInfo uriInfo) {
context.authenticatedUser().validateHasReadPermission(resourceNameForPermissions); context.authenticatedUser().validateHasReadPermission(resourceNameForPermissions);
@@ -62,8 +62,8 @@ public class RolesApiResource {
private final String resourceNameForPermissions = "ROLE"; private final String resourceNameForPermissions = "ROLE";
@GET @GET
@Consumes({MediaType.APPLICATION_JSON}) @Consumes({ MediaType.APPLICATION_JSON })
@Produces({MediaType.APPLICATION_JSON}) @Produces({ MediaType.APPLICATION_JSON })
public String retrieveAllRoles(@Context final UriInfo uriInfo) { public String retrieveAllRoles(@Context final UriInfo uriInfo) {
context.authenticatedUser().validateHasReadPermission(resourceNameForPermissions); context.authenticatedUser().validateHasReadPermission(resourceNameForPermissions);
@@ -77,11 +77,12 @@ public class RolesApiResource {
} }
@POST @POST
@Consumes({MediaType.APPLICATION_JSON}) @Consumes({ MediaType.APPLICATION_JSON })
@Produces({MediaType.APPLICATION_JSON}) @Produces({ MediaType.APPLICATION_JSON })
public String createRole(final String apiRequestBodyAsJson) { public String createRole(final String apiRequestBodyAsJson) {
final EntityIdentifier result = this.commandsSourceWritePlatformService.logCommandSource("CREATE", "roles", null, apiRequestBodyAsJson); final EntityIdentifier result = this.commandsSourceWritePlatformService.logCommandSource("CREATE", "roles", null,
apiRequestBodyAsJson);
return this.apiJsonSerializerService.serializeEntityIdentifier(result); return this.apiJsonSerializerService.serializeEntityIdentifier(result);
} }
@@ -96,8 +97,8 @@ public class RolesApiResource {
// into account the Object its looking at. // into account the Object its looking at.
@GET @GET
@Path("{roleId}") @Path("{roleId}")
@Consumes({MediaType.APPLICATION_JSON}) @Consumes({ MediaType.APPLICATION_JSON })
@Produces({MediaType.APPLICATION_JSON}) @Produces({ MediaType.APPLICATION_JSON })
public String retrieveRole(@PathParam("roleId") final Long roleId, @Context final UriInfo uriInfo) { public String retrieveRole(@PathParam("roleId") final Long roleId, @Context final UriInfo uriInfo) {
context.authenticatedUser().validateHasReadPermission(resourceNameForPermissions); context.authenticatedUser().validateHasReadPermission(resourceNameForPermissions);
@@ -109,7 +110,9 @@ public class RolesApiResource {
RoleData role = this.roleReadPlatformService.retrieveRole(roleId); RoleData role = this.roleReadPlatformService.retrieveRole(roleId);
if (commandId != null) { if (commandId != null) {
// currentChanges = handleRequestToIntegrateProposedChangesFromCommand(roleId, commandId); // currentChanges =
// handleRequestToIntegrateProposedChangesFromCommand(roleId,
// commandId);
} }
return this.apiJsonSerializerService.serializeRoleDataToJson(prettyPrint, responseParameters, role); return this.apiJsonSerializerService.serializeRoleDataToJson(prettyPrint, responseParameters, role);
@@ -117,19 +120,20 @@ public class RolesApiResource {
@PUT @PUT
@Path("{roleId}") @Path("{roleId}")
@Consumes({MediaType.APPLICATION_JSON}) @Consumes({ MediaType.APPLICATION_JSON })
@Produces({MediaType.APPLICATION_JSON}) @Produces({ MediaType.APPLICATION_JSON })
public String updateRole(@PathParam("roleId") final Long roleId, final String apiRequestBodyAsJson) { public String updateRole(@PathParam("roleId") final Long roleId, final String apiRequestBodyAsJson) {
final EntityIdentifier result = this.commandsSourceWritePlatformService.logCommandSource("UPDATE", "roles", roleId, apiRequestBodyAsJson); final EntityIdentifier result = this.commandsSourceWritePlatformService.logCommandSource("UPDATE", "roles", roleId,
apiRequestBodyAsJson);
return this.apiJsonSerializerService.serializeEntityIdentifier(result); return this.apiJsonSerializerService.serializeEntityIdentifier(result);
} }
@GET @GET
@Path("{roleId}/permissions") @Path("{roleId}/permissions")
@Consumes({MediaType.APPLICATION_JSON}) @Consumes({ MediaType.APPLICATION_JSON })
@Produces({MediaType.APPLICATION_JSON}) @Produces({ MediaType.APPLICATION_JSON })
public String retrieveRolePermissions(@PathParam("roleId") final Long roleId, @Context final UriInfo uriInfo) { public String retrieveRolePermissions(@PathParam("roleId") final Long roleId, @Context final UriInfo uriInfo) {
context.authenticatedUser().validateHasReadPermission(resourceNameForPermissions); context.authenticatedUser().validateHasReadPermission(resourceNameForPermissions);
@@ -158,7 +162,8 @@ public class RolesApiResource {
} }
private Collection<PermissionUsageData> assemblePermissionChanges(final Long roleId, final CommandSourceData entry) { private Collection<PermissionUsageData> assemblePermissionChanges(final Long roleId, final CommandSourceData entry) {
final RolePermissionCommand changesOnly = this.commandDeserializerService.deserializeRolePermissionCommand(roleId, entry.json(), false); final RolePermissionCommand changesOnly = this.commandDeserializerService.deserializeRolePermissionCommand(roleId, entry.json(),
false);
// assemble map of string/booleans into PermissionUsageData // assemble map of string/booleans into PermissionUsageData
Collection<PermissionUsageData> proposedChanges = new ArrayList<PermissionUsageData>(); Collection<PermissionUsageData> proposedChanges = new ArrayList<PermissionUsageData>();
@@ -175,7 +180,8 @@ public class RolesApiResource {
private Collection<Collection<PermissionUsageData>> retrieveAllUnprocessedDataChanges(final Long roleId) { private Collection<Collection<PermissionUsageData>> retrieveAllUnprocessedDataChanges(final Long roleId) {
Collection<Collection<PermissionUsageData>> allChanges = new ArrayList<Collection<PermissionUsageData>>(); Collection<Collection<PermissionUsageData>> allChanges = new ArrayList<Collection<PermissionUsageData>>();
final Collection<CommandSourceData> unprocessedChanges = this.commandSourceReadPlatformService.retrieveUnprocessChangesByResourceId("roles", roleId); final Collection<CommandSourceData> unprocessedChanges = this.commandSourceReadPlatformService
.retrieveUnprocessChangesByResourceId("roles", roleId);
for (CommandSourceData commandSourceData : unprocessedChanges) { for (CommandSourceData commandSourceData : unprocessedChanges) {
if (commandSourceData.isRoleResource() && commandSourceData.isUpdateRolePermissions()) { if (commandSourceData.isRoleResource() && commandSourceData.isUpdateRolePermissions()) {
@@ -194,11 +200,12 @@ public class RolesApiResource {
@PUT @PUT
@Path("{roleId}/permissions") @Path("{roleId}/permissions")
@Consumes({MediaType.APPLICATION_JSON}) @Consumes({ MediaType.APPLICATION_JSON })
@Produces({MediaType.APPLICATION_JSON}) @Produces({ MediaType.APPLICATION_JSON })
public String updateRolePermissions(@PathParam("roleId") final Long roleId, final String apiRequestBodyAsJson) { public String updateRolePermissions(@PathParam("roleId") final Long roleId, final String apiRequestBodyAsJson) {
final EntityIdentifier result = this.commandsSourceWritePlatformService.logCommandSource("UPDATEPERMISSIONS", "roles", roleId, apiRequestBodyAsJson); final EntityIdentifier result = this.commandsSourceWritePlatformService.logCommandSource("UPDATEPERMISSIONS", "roles", roleId,
apiRequestBodyAsJson);
return this.apiJsonSerializerService.serializeEntityIdentifier(result); return this.apiJsonSerializerService.serializeEntityIdentifier(result);
} }
@@ -5,31 +5,30 @@ package org.mifosng.platform.api.data;
*/ */
public class PermissionUsageData { public class PermissionUsageData {
@SuppressWarnings("unused") @SuppressWarnings("unused")
private final String grouping; private final String grouping;
@SuppressWarnings("unused") @SuppressWarnings("unused")
private final String code; private final String code;
@SuppressWarnings("unused") @SuppressWarnings("unused")
private final String entityName; private final String entityName;
@SuppressWarnings("unused") @SuppressWarnings("unused")
private final String actionName; private final String actionName;
@SuppressWarnings("unused") @SuppressWarnings("unused")
private final Boolean selected; private final Boolean selected;
@SuppressWarnings("unused") @SuppressWarnings("unused")
private final Boolean isMakerChecker; private final Boolean isMakerChecker;
public static PermissionUsageData from(final String permissionCode, final boolean isSelected) { public static PermissionUsageData from(final String permissionCode, final boolean isSelected) {
return new PermissionUsageData(null, permissionCode, null, null, isSelected, null); return new PermissionUsageData(null, permissionCode, null, null, isSelected, null);
} }
public PermissionUsageData(final String grouping, final String code, public PermissionUsageData(final String grouping, final String code, final String entityName, final String actionName,
final String entityName, final String actionName, final Boolean selected, final Boolean isMakerChecker) {
final Boolean selected, final Boolean isMakerChecker) { this.grouping = grouping;
this.grouping = grouping; this.code = code;
this.code = code; this.entityName = entityName;
this.entityName = entityName; this.actionName = actionName;
this.actionName = actionName; this.selected = selected;
this.selected = selected; this.isMakerChecker = isMakerChecker;
this.isMakerChecker = isMakerChecker; }
}
} }
@@ -11,8 +11,8 @@ public class RoleData {
private final String name; private final String name;
private final String description; private final String description;
// @SuppressWarnings("unused") // @SuppressWarnings("unused")
// private final Collection<RoleData> currentChanges; // private final Collection<RoleData> currentChanges;
public RoleData(final Long id, final String name, final String description) { public RoleData(final Long id, final String name, final String description) {
this.id = id; this.id = id;
@@ -44,8 +44,7 @@ public class RoleData {
} }
public RolePermissionsData toRolePermissionData(final Collection<PermissionUsageData> permissionUsageData, public RolePermissionsData toRolePermissionData(final Collection<PermissionUsageData> permissionUsageData,
final Collection<PermissionUsageData> currentChanges, final Collection<PermissionUsageData> currentChanges, final Collection<Collection<PermissionUsageData>> allChanges) {
final Collection<Collection<PermissionUsageData>> allChanges) {
return new RolePermissionsData(id, name, description, permissionUsageData, currentChanges, allChanges); return new RolePermissionsData(id, name, description, permissionUsageData, currentChanges, allChanges);
} }
} }
@@ -22,8 +22,7 @@ public class RolePermissionsData {
private final Collection<Collection<PermissionUsageData>> allChanges; private final Collection<Collection<PermissionUsageData>> allChanges;
public RolePermissionsData(final Long id, final String name, final String description, public RolePermissionsData(final Long id, final String name, final String description,
final Collection<PermissionUsageData> permissionUsageData, final Collection<PermissionUsageData> permissionUsageData, final Collection<PermissionUsageData> currentChanges,
final Collection<PermissionUsageData> currentChanges,
final Collection<Collection<PermissionUsageData>> allChanges) { final Collection<Collection<PermissionUsageData>> allChanges) {
this.id = id; this.id = id;
this.name = name; this.name = name;
@@ -54,7 +54,8 @@ import com.google.gson.Gson;
@Service @Service
public class GoogleGsonPortfolioApiJsonSerializerService implements PortfolioApiJsonSerializerService { public class GoogleGsonPortfolioApiJsonSerializerService implements PortfolioApiJsonSerializerService {
private static final Set<String> PERMISSION_DATA_PARAMETERS = new HashSet<String>(Arrays.asList("grouping", "code", "entityName", "actionName", "selected", "isMakerChecker")); private static final Set<String> PERMISSION_DATA_PARAMETERS = new HashSet<String>(Arrays.asList("grouping", "code", "entityName",
"actionName", "selected", "isMakerChecker"));
private static final Set<String> ROLE_DATA_PARAMETERS = new HashSet<String>(Arrays.asList("id", "name", "description", private static final Set<String> ROLE_DATA_PARAMETERS = new HashSet<String>(Arrays.asList("id", "name", "description",
"availablePermissions", "selectedPermissions")); "availablePermissions", "selectedPermissions"));
private static final Set<String> ROLE_PERMISSION_DATA_PARAMETERS = new HashSet<String>(Arrays.asList("id", "name", "description", private static final Set<String> ROLE_PERMISSION_DATA_PARAMETERS = new HashSet<String>(Arrays.asList("id", "name", "description",
@@ -166,12 +167,10 @@ public class GoogleGsonPortfolioApiJsonSerializerService implements PortfolioApi
"preClosureAllowed", "preClosureInterestRate", "withdrawnonDate", "rejectedonDate", "closedonDate", "isLockinPeriodAllowed", "preClosureAllowed", "preClosureInterestRate", "withdrawnonDate", "rejectedonDate", "closedonDate", "isLockinPeriodAllowed",
"lockinPeriod", "lockinPeriodType")); "lockinPeriod", "lockinPeriodType"));
//guarantors // guarantors
private static final Set<String> GUARANTOR_DATA_PARAMETERS = new HashSet<String>( private static final Set<String> GUARANTOR_DATA_PARAMETERS = new HashSet<String>(Arrays.asList("externalGuarantor", "existingClientId",
Arrays.asList("externalGuarantor", "existingClientId", "firstname", "lastname", "addressLine1", "addressLine2", "city", "state", "zip", "country", "mobileNumber", "housePhoneNumber",
"firstname", "lastname", "addressLine1", "comment", "dob"));
"addressLine2", "city", "state", "zip", "country",
"mobileNumber", "housePhoneNumber", "comment", "dob"));
// accounting // accounting
private static final Set<String> CHART_OF_ACCOUNTS_DATA_PARAMETERS = new HashSet<String>(Arrays.asList("id", "name")); private static final Set<String> CHART_OF_ACCOUNTS_DATA_PARAMETERS = new HashSet<String>(Arrays.asList("id", "name"));
@@ -587,11 +586,9 @@ public class GoogleGsonPortfolioApiJsonSerializerService implements PortfolioApi
} }
@Override @Override
public String serializeGuarantorDataToJson(boolean prettyPrint, public String serializeGuarantorDataToJson(boolean prettyPrint, Set<String> responseParameters, GuarantorData guarantorData) {
Set<String> responseParameters, GuarantorData guarantorData) { final Gson gsonDeserializer = helper.createGsonBuilderWithParameterExclusionSerializationStrategy(GUARANTOR_DATA_PARAMETERS,
final Gson gsonDeserializer = helper prettyPrint, responseParameters);
.createGsonBuilderWithParameterExclusionSerializationStrategy( return helper.serializedJsonFrom(gsonDeserializer, guarantorData);
GUARANTOR_DATA_PARAMETERS, prettyPrint, responseParameters); }
return helper.serializedJsonFrom(gsonDeserializer, guarantorData);
}
} }
@@ -6,7 +6,7 @@ import org.mifosng.platform.api.data.PermissionUsageData;
public interface PermissionReadPlatformService { public interface PermissionReadPlatformService {
Collection<PermissionUsageData> retrieveAllPermissions(); Collection<PermissionUsageData> retrieveAllPermissions();
Collection<PermissionUsageData> retrieveAllRolePermissions(Long roleId); Collection<PermissionUsageData> retrieveAllRolePermissions(Long roleId);
} }
@@ -35,7 +35,6 @@ public class PermissionReadPlatformServiceImpl implements PermissionReadPlatform
return this.jdbcTemplate.query(sql, mapper, new Object[] {}); return this.jdbcTemplate.query(sql, mapper, new Object[] {});
} }
@Override @Override
public Collection<PermissionUsageData> retrieveAllRolePermissions(final Long roleId) { public Collection<PermissionUsageData> retrieveAllRolePermissions(final Long roleId) {
@@ -62,13 +61,12 @@ public class PermissionReadPlatformServiceImpl implements PermissionReadPlatform
public String permissionSchema() { public String permissionSchema() {
return "select p.grouping, p.code, p.entity_name as entityName, p.action_name as actionName, true as selected, p.is_maker_checker as isMakerChecker" return "select p.grouping, p.code, p.entity_name as entityName, p.action_name as actionName, true as selected, p.is_maker_checker as isMakerChecker"
+ " from m_permission p " + " from m_permission p " + " order by p.grouping, ifnull(entity_name, ''), p.code";
+ " order by p.grouping, ifnull(entity_name, ''), p.code";
} }
public String rolePermissionSchema() { public String rolePermissionSchema() {
return "select p.grouping, p.code, p.entity_name as entityName, p.action_name as actionName, if(isnull(rp.role_id), false, true) as selected, " return "select p.grouping, p.code, p.entity_name as entityName, p.action_name as actionName, if(isnull(rp.role_id), false, true) as selected, "
+ " if(isnull(rp.role_id), false, p.is_maker_checker) as isMakerChecker " + " if(isnull(rp.role_id), false, p.is_maker_checker) as isMakerChecker "
+ " from m_permission p " + " from m_permission p "
+ " left join m_role_permission rp on rp.permission_id = p.id and rp.role_id = ? " + " left join m_role_permission rp on rp.permission_id = p.id and rp.role_id = ? "
+ " order by p.grouping, ifnull(entity_name, ''), p.code"; + " order by p.grouping, ifnull(entity_name, ''), p.code";