MIFOSX-97: initial integration of changes into roles and permissions for maker checker purposes.
This commit is contained in:
+7
-2
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -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) {
|
||||
|
||||
+30
-18
@@ -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<RoleData> toApiJsonSerializer;
|
||||
private final DefaultToApiJsonSerializer<RolePermissionsData> 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<RoleData> toApiJsonSerializer,
|
||||
final DefaultToApiJsonSerializer<RolePermissionsData> 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> permissionUsageData = this.permissionReadPlatformService.retrieveAllRolePermissions(roleId);
|
||||
Collection<PermissionUsageData> currentChanges = null;
|
||||
|
||||
if (settings.isCommandIdPassed()) {
|
||||
final CommandSourceData entry = this.commandSourceReadPlatformService.retrieveById(settings.getCommandId());
|
||||
PermissionsCommand command = permissionsFromApiJsonDeserializer.commandFromApiJson(entry.json());
|
||||
currentChanges = new ArrayList<PermissionUsageData>();
|
||||
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);
|
||||
}
|
||||
}
|
||||
+12
-12
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user