diff --git a/mifosng-provider/src/main/java/org/mifosplatform/commands/service/CommandWrapperBuilder.java b/mifosng-provider/src/main/java/org/mifosplatform/commands/service/CommandWrapperBuilder.java index c9c41f22b..be5d111c1 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/commands/service/CommandWrapperBuilder.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/commands/service/CommandWrapperBuilder.java @@ -55,18 +55,23 @@ public class CommandWrapperBuilder { public CommandWrapperBuilder createRole() { this.actionName = "CREATE"; this.entityName = "ROLE"; + this.href = "/roles/template"; return this; } - public CommandWrapperBuilder updateRole() { + public CommandWrapperBuilder updateRole(final Long roleId) { this.actionName = "UPDATE"; this.entityName = "ROLE"; + this.entityId = roleId; + this.href = "/roles/" + roleId; return this; } - public CommandWrapperBuilder updateRolePermissions() { + public CommandWrapperBuilder updateRolePermissions(final Long roleId) { this.actionName = "PERMISSIONS"; this.entityName = "ROLE"; + this.entityId = roleId; + this.href = "/roles/" + roleId + "/permissions"; return this; } diff --git a/mifosng-provider/src/main/java/org/mifosplatform/organisation/monetary/service/ConfigurationDomainServiceJpa.java b/mifosng-provider/src/main/java/org/mifosplatform/organisation/monetary/service/ConfigurationDomainServiceJpa.java index cb5ccfe81..f6643d831 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/organisation/monetary/service/ConfigurationDomainServiceJpa.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/organisation/monetary/service/ConfigurationDomainServiceJpa.java @@ -15,7 +15,7 @@ public class ConfigurationDomainServiceJpa implements ConfigurationDomainService /* * hard code to false to disable maker checker across the board. */ - private final boolean makerCheckerGloablConfigurationEnabled = true; + private final boolean makerCheckerGloablConfigurationEnabled = false; @Autowired public ConfigurationDomainServiceJpa(final PermissionRepository permissionRepository) { diff --git a/mifosng-provider/src/main/java/org/mifosplatform/useradministration/api/RolesApiResource.java b/mifosng-provider/src/main/java/org/mifosplatform/useradministration/api/RolesApiResource.java index fa864fc99..c6913b322 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/useradministration/api/RolesApiResource.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/useradministration/api/RolesApiResource.java @@ -1,5 +1,6 @@ package org.mifosplatform.useradministration.api; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.HashSet; @@ -27,10 +28,12 @@ import org.mifosplatform.infrastructure.core.data.CommandProcessingResult; import org.mifosplatform.infrastructure.core.serialization.ApiRequestJsonSerializationSettings; import org.mifosplatform.infrastructure.core.serialization.DefaultToApiJsonSerializer; import org.mifosplatform.infrastructure.security.service.PlatformSecurityContext; +import org.mifosplatform.useradministration.command.PermissionsCommand; import org.mifosplatform.useradministration.command.RoleCommand; import org.mifosplatform.useradministration.data.PermissionUsageData; import org.mifosplatform.useradministration.data.RoleData; import org.mifosplatform.useradministration.data.RolePermissionsData; +import org.mifosplatform.useradministration.serialization.PermissionsCommandFromApiJsonDeserializer; import org.mifosplatform.useradministration.serialization.RoleCommandFromApiJsonDeserializer; import org.mifosplatform.useradministration.service.PermissionReadPlatformService; import org.mifosplatform.useradministration.service.RoleReadPlatformService; @@ -61,6 +64,7 @@ public class RolesApiResource { private final RoleReadPlatformService roleReadPlatformService; private final PermissionReadPlatformService permissionReadPlatformService; private final RoleCommandFromApiJsonDeserializer fromApiJsonDeserializer; + private final PermissionsCommandFromApiJsonDeserializer permissionsFromApiJsonDeserializer; private final DefaultToApiJsonSerializer toApiJsonSerializer; private final DefaultToApiJsonSerializer permissionsToApiJsonSerializer; private final ApiRequestParameterHelper apiRequestParameterHelper; @@ -71,6 +75,7 @@ public class RolesApiResource { public RolesApiResource(final PlatformSecurityContext context, final RoleReadPlatformService readPlatformService, final PermissionReadPlatformService permissionReadPlatformService, final RoleCommandFromApiJsonDeserializer fromApiJsonDeserializer, + final PermissionsCommandFromApiJsonDeserializer permissionsFromApiJsonDeserializer, final DefaultToApiJsonSerializer toApiJsonSerializer, final DefaultToApiJsonSerializer permissionsToApiJsonSerializer, final ApiRequestParameterHelper apiRequestParameterHelper, @@ -80,6 +85,7 @@ public class RolesApiResource { this.roleReadPlatformService = readPlatformService; this.permissionReadPlatformService = permissionReadPlatformService; this.fromApiJsonDeserializer = fromApiJsonDeserializer; + this.permissionsFromApiJsonDeserializer = permissionsFromApiJsonDeserializer; this.toApiJsonSerializer = toApiJsonSerializer; this.permissionsToApiJsonSerializer = permissionsToApiJsonSerializer; this.apiRequestParameterHelper = apiRequestParameterHelper; @@ -105,7 +111,9 @@ public class RolesApiResource { @Produces({ MediaType.APPLICATION_JSON }) public String createRole(final String apiRequestBodyAsJson) { - final CommandWrapper commandRequest = new CommandWrapperBuilder().createRole().withUrl("/roles").withJson(apiRequestBodyAsJson) + final CommandWrapper commandRequest = new CommandWrapperBuilder() // + .createRole() // + .withJson(apiRequestBodyAsJson) // .build(); final CommandProcessingResult result = this.commandsSourceWritePlatformService.logCommandSource(commandRequest); @@ -125,32 +133,25 @@ public class RolesApiResource { RoleData role = this.roleReadPlatformService.retrieveRole(roleId); if (settings.isCommandIdPassed()) { - RoleData currentChanges = handleRequestToIntegrateProposedChangesFromRoleCommand(settings.getCommandId()); - + final CommandSourceData entry = this.commandSourceReadPlatformService.retrieveById(settings.getCommandId()); + final RoleCommand changesOnly = this.fromApiJsonDeserializer.commandFromApiJson(entry.json()); + RoleData currentChanges = RoleData.changes(changesOnly.getName(), changesOnly.getDescription()); role = RoleData.integrateChanges(role, currentChanges); } return this.toApiJsonSerializer.serialize(settings, role, RESPONSE_DATA_PARAMETERS); } - private RoleData handleRequestToIntegrateProposedChangesFromRoleCommand(final Long commandId) { - final CommandSourceData entry = this.commandSourceReadPlatformService.retrieveById(commandId); - return assembleRoleChanges(entry); - } - - private RoleData assembleRoleChanges(final CommandSourceData entry) { - final RoleCommand changesOnly = this.fromApiJsonDeserializer.commandFromApiJson(entry.json()); - return RoleData.changes(changesOnly.getName(), changesOnly.getDescription()); - } - @PUT @Path("{roleId}") @Consumes({ MediaType.APPLICATION_JSON }) @Produces({ MediaType.APPLICATION_JSON }) public String updateRole(@PathParam("roleId") final Long roleId, final String apiRequestBodyAsJson) { - final CommandWrapper commandRequest = new CommandWrapperBuilder().updateRole().withUrl("/roles").withJson(apiRequestBodyAsJson) - .withEntityId(roleId).build(); + final CommandWrapper commandRequest = new CommandWrapperBuilder() // + .updateRole(roleId) // + .withJson(apiRequestBodyAsJson) // + .build(); final CommandProcessingResult result = this.commandsSourceWritePlatformService.logCommandSource(commandRequest); @@ -171,6 +172,15 @@ public class RolesApiResource { final Collection permissionUsageData = this.permissionReadPlatformService.retrieveAllRolePermissions(roleId); Collection currentChanges = null; + if (settings.isCommandIdPassed()) { + final CommandSourceData entry = this.commandSourceReadPlatformService.retrieveById(settings.getCommandId()); + PermissionsCommand command = permissionsFromApiJsonDeserializer.commandFromApiJson(entry.json()); + currentChanges = new ArrayList(); + for (String key : command.getPermissions().keySet()) { + currentChanges.add(PermissionUsageData.from(key, command.getPermissions().get(key))); + } + } + final RolePermissionsData permissionsData = role.toRolePermissionData(permissionUsageData, currentChanges); return this.permissionsToApiJsonSerializer.serialize(settings, permissionsData, PERMISSIONS_RESPONSE_DATA_PARAMETERS); } @@ -181,11 +191,13 @@ public class RolesApiResource { @Produces({ MediaType.APPLICATION_JSON }) public String updateRolePermissions(@PathParam("roleId") final Long roleId, final String apiRequestBodyAsJson) { - final CommandWrapper commandRequest = new CommandWrapperBuilder().updateRolePermissions().withUrl("/roles/" + roleId + "/permissions").withJson(apiRequestBodyAsJson) - .withEntityId(roleId).build(); + final CommandWrapper commandRequest = new CommandWrapperBuilder() // + .updateRolePermissions(roleId) // + .withJson(apiRequestBodyAsJson) // + .build(); final CommandProcessingResult result = this.commandsSourceWritePlatformService.logCommandSource(commandRequest); - + return this.toApiJsonSerializer.serialize(result); } } \ No newline at end of file diff --git a/mifosng-provider/src/main/java/org/mifosplatform/useradministration/data/AppUserLookup.java b/mifosng-provider/src/main/java/org/mifosplatform/useradministration/data/AppUserLookup.java index e4bb7b42e..eb758ed27 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/useradministration/data/AppUserLookup.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/useradministration/data/AppUserLookup.java @@ -5,20 +5,20 @@ package org.mifosplatform.useradministration.data; */ public class AppUserLookup { - private final Long id; - private final String username; + private final Long id; + private final String username; - public AppUserLookup(final Long id, final String username) { - this.id = id; - this.username = username; - } + public AppUserLookup(final Long id, final String username) { + this.id = id; + this.username = username; + } - public Long getId() { - return this.id; - } + public Long getId() { + return this.id; + } - public String getUsername() { - return this.username; - } + public String getUsername() { + return this.username; + } } \ No newline at end of file