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() {
|
public CommandWrapperBuilder createRole() {
|
||||||
this.actionName = "CREATE";
|
this.actionName = "CREATE";
|
||||||
this.entityName = "ROLE";
|
this.entityName = "ROLE";
|
||||||
|
this.href = "/roles/template";
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public CommandWrapperBuilder updateRole() {
|
public CommandWrapperBuilder updateRole(final Long roleId) {
|
||||||
this.actionName = "UPDATE";
|
this.actionName = "UPDATE";
|
||||||
this.entityName = "ROLE";
|
this.entityName = "ROLE";
|
||||||
|
this.entityId = roleId;
|
||||||
|
this.href = "/roles/" + roleId;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public CommandWrapperBuilder updateRolePermissions() {
|
public CommandWrapperBuilder updateRolePermissions(final Long roleId) {
|
||||||
this.actionName = "PERMISSIONS";
|
this.actionName = "PERMISSIONS";
|
||||||
this.entityName = "ROLE";
|
this.entityName = "ROLE";
|
||||||
|
this.entityId = roleId;
|
||||||
|
this.href = "/roles/" + roleId + "/permissions";
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -15,7 +15,7 @@ public class ConfigurationDomainServiceJpa implements ConfigurationDomainService
|
|||||||
/*
|
/*
|
||||||
* hard code to false to disable maker checker across the board.
|
* hard code to false to disable maker checker across the board.
|
||||||
*/
|
*/
|
||||||
private final boolean makerCheckerGloablConfigurationEnabled = true;
|
private final boolean makerCheckerGloablConfigurationEnabled = false;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
public ConfigurationDomainServiceJpa(final PermissionRepository permissionRepository) {
|
public ConfigurationDomainServiceJpa(final PermissionRepository permissionRepository) {
|
||||||
|
|||||||
+29
-17
@@ -1,5 +1,6 @@
|
|||||||
package org.mifosplatform.useradministration.api;
|
package org.mifosplatform.useradministration.api;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.HashSet;
|
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.ApiRequestJsonSerializationSettings;
|
||||||
import org.mifosplatform.infrastructure.core.serialization.DefaultToApiJsonSerializer;
|
import org.mifosplatform.infrastructure.core.serialization.DefaultToApiJsonSerializer;
|
||||||
import org.mifosplatform.infrastructure.security.service.PlatformSecurityContext;
|
import org.mifosplatform.infrastructure.security.service.PlatformSecurityContext;
|
||||||
|
import org.mifosplatform.useradministration.command.PermissionsCommand;
|
||||||
import org.mifosplatform.useradministration.command.RoleCommand;
|
import org.mifosplatform.useradministration.command.RoleCommand;
|
||||||
import org.mifosplatform.useradministration.data.PermissionUsageData;
|
import org.mifosplatform.useradministration.data.PermissionUsageData;
|
||||||
import org.mifosplatform.useradministration.data.RoleData;
|
import org.mifosplatform.useradministration.data.RoleData;
|
||||||
import org.mifosplatform.useradministration.data.RolePermissionsData;
|
import org.mifosplatform.useradministration.data.RolePermissionsData;
|
||||||
|
import org.mifosplatform.useradministration.serialization.PermissionsCommandFromApiJsonDeserializer;
|
||||||
import org.mifosplatform.useradministration.serialization.RoleCommandFromApiJsonDeserializer;
|
import org.mifosplatform.useradministration.serialization.RoleCommandFromApiJsonDeserializer;
|
||||||
import org.mifosplatform.useradministration.service.PermissionReadPlatformService;
|
import org.mifosplatform.useradministration.service.PermissionReadPlatformService;
|
||||||
import org.mifosplatform.useradministration.service.RoleReadPlatformService;
|
import org.mifosplatform.useradministration.service.RoleReadPlatformService;
|
||||||
@@ -61,6 +64,7 @@ public class RolesApiResource {
|
|||||||
private final RoleReadPlatformService roleReadPlatformService;
|
private final RoleReadPlatformService roleReadPlatformService;
|
||||||
private final PermissionReadPlatformService permissionReadPlatformService;
|
private final PermissionReadPlatformService permissionReadPlatformService;
|
||||||
private final RoleCommandFromApiJsonDeserializer fromApiJsonDeserializer;
|
private final RoleCommandFromApiJsonDeserializer fromApiJsonDeserializer;
|
||||||
|
private final PermissionsCommandFromApiJsonDeserializer permissionsFromApiJsonDeserializer;
|
||||||
private final DefaultToApiJsonSerializer<RoleData> toApiJsonSerializer;
|
private final DefaultToApiJsonSerializer<RoleData> toApiJsonSerializer;
|
||||||
private final DefaultToApiJsonSerializer<RolePermissionsData> permissionsToApiJsonSerializer;
|
private final DefaultToApiJsonSerializer<RolePermissionsData> permissionsToApiJsonSerializer;
|
||||||
private final ApiRequestParameterHelper apiRequestParameterHelper;
|
private final ApiRequestParameterHelper apiRequestParameterHelper;
|
||||||
@@ -71,6 +75,7 @@ public class RolesApiResource {
|
|||||||
public RolesApiResource(final PlatformSecurityContext context, final RoleReadPlatformService readPlatformService,
|
public RolesApiResource(final PlatformSecurityContext context, final RoleReadPlatformService readPlatformService,
|
||||||
final PermissionReadPlatformService permissionReadPlatformService,
|
final PermissionReadPlatformService permissionReadPlatformService,
|
||||||
final RoleCommandFromApiJsonDeserializer fromApiJsonDeserializer,
|
final RoleCommandFromApiJsonDeserializer fromApiJsonDeserializer,
|
||||||
|
final PermissionsCommandFromApiJsonDeserializer permissionsFromApiJsonDeserializer,
|
||||||
final DefaultToApiJsonSerializer<RoleData> toApiJsonSerializer,
|
final DefaultToApiJsonSerializer<RoleData> toApiJsonSerializer,
|
||||||
final DefaultToApiJsonSerializer<RolePermissionsData> permissionsToApiJsonSerializer,
|
final DefaultToApiJsonSerializer<RolePermissionsData> permissionsToApiJsonSerializer,
|
||||||
final ApiRequestParameterHelper apiRequestParameterHelper,
|
final ApiRequestParameterHelper apiRequestParameterHelper,
|
||||||
@@ -80,6 +85,7 @@ public class RolesApiResource {
|
|||||||
this.roleReadPlatformService = readPlatformService;
|
this.roleReadPlatformService = readPlatformService;
|
||||||
this.permissionReadPlatformService = permissionReadPlatformService;
|
this.permissionReadPlatformService = permissionReadPlatformService;
|
||||||
this.fromApiJsonDeserializer = fromApiJsonDeserializer;
|
this.fromApiJsonDeserializer = fromApiJsonDeserializer;
|
||||||
|
this.permissionsFromApiJsonDeserializer = permissionsFromApiJsonDeserializer;
|
||||||
this.toApiJsonSerializer = toApiJsonSerializer;
|
this.toApiJsonSerializer = toApiJsonSerializer;
|
||||||
this.permissionsToApiJsonSerializer = permissionsToApiJsonSerializer;
|
this.permissionsToApiJsonSerializer = permissionsToApiJsonSerializer;
|
||||||
this.apiRequestParameterHelper = apiRequestParameterHelper;
|
this.apiRequestParameterHelper = apiRequestParameterHelper;
|
||||||
@@ -105,7 +111,9 @@ public class RolesApiResource {
|
|||||||
@Produces({ MediaType.APPLICATION_JSON })
|
@Produces({ MediaType.APPLICATION_JSON })
|
||||||
public String createRole(final String apiRequestBodyAsJson) {
|
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();
|
.build();
|
||||||
|
|
||||||
final CommandProcessingResult result = this.commandsSourceWritePlatformService.logCommandSource(commandRequest);
|
final CommandProcessingResult result = this.commandsSourceWritePlatformService.logCommandSource(commandRequest);
|
||||||
@@ -125,32 +133,25 @@ public class RolesApiResource {
|
|||||||
|
|
||||||
RoleData role = this.roleReadPlatformService.retrieveRole(roleId);
|
RoleData role = this.roleReadPlatformService.retrieveRole(roleId);
|
||||||
if (settings.isCommandIdPassed()) {
|
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);
|
role = RoleData.integrateChanges(role, currentChanges);
|
||||||
}
|
}
|
||||||
|
|
||||||
return this.toApiJsonSerializer.serialize(settings, role, RESPONSE_DATA_PARAMETERS);
|
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
|
@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 CommandWrapper commandRequest = new CommandWrapperBuilder().updateRole().withUrl("/roles").withJson(apiRequestBodyAsJson)
|
final CommandWrapper commandRequest = new CommandWrapperBuilder() //
|
||||||
.withEntityId(roleId).build();
|
.updateRole(roleId) //
|
||||||
|
.withJson(apiRequestBodyAsJson) //
|
||||||
|
.build();
|
||||||
|
|
||||||
final CommandProcessingResult result = this.commandsSourceWritePlatformService.logCommandSource(commandRequest);
|
final CommandProcessingResult result = this.commandsSourceWritePlatformService.logCommandSource(commandRequest);
|
||||||
|
|
||||||
@@ -171,6 +172,15 @@ public class RolesApiResource {
|
|||||||
final Collection<PermissionUsageData> permissionUsageData = this.permissionReadPlatformService.retrieveAllRolePermissions(roleId);
|
final Collection<PermissionUsageData> permissionUsageData = this.permissionReadPlatformService.retrieveAllRolePermissions(roleId);
|
||||||
Collection<PermissionUsageData> currentChanges = null;
|
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);
|
final RolePermissionsData permissionsData = role.toRolePermissionData(permissionUsageData, currentChanges);
|
||||||
return this.permissionsToApiJsonSerializer.serialize(settings, permissionsData, PERMISSIONS_RESPONSE_DATA_PARAMETERS);
|
return this.permissionsToApiJsonSerializer.serialize(settings, permissionsData, PERMISSIONS_RESPONSE_DATA_PARAMETERS);
|
||||||
}
|
}
|
||||||
@@ -181,8 +191,10 @@ public class RolesApiResource {
|
|||||||
@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 CommandWrapper commandRequest = new CommandWrapperBuilder().updateRolePermissions().withUrl("/roles/" + roleId + "/permissions").withJson(apiRequestBodyAsJson)
|
final CommandWrapper commandRequest = new CommandWrapperBuilder() //
|
||||||
.withEntityId(roleId).build();
|
.updateRolePermissions(roleId) //
|
||||||
|
.withJson(apiRequestBodyAsJson) //
|
||||||
|
.build();
|
||||||
|
|
||||||
final CommandProcessingResult result = this.commandsSourceWritePlatformService.logCommandSource(commandRequest);
|
final CommandProcessingResult result = this.commandsSourceWritePlatformService.logCommandSource(commandRequest);
|
||||||
|
|
||||||
|
|||||||
+12
-12
@@ -5,20 +5,20 @@ package org.mifosplatform.useradministration.data;
|
|||||||
*/
|
*/
|
||||||
public class AppUserLookup {
|
public class AppUserLookup {
|
||||||
|
|
||||||
private final Long id;
|
private final Long id;
|
||||||
private final String username;
|
private final String username;
|
||||||
|
|
||||||
public AppUserLookup(final Long id, final String username) {
|
public AppUserLookup(final Long id, final String username) {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
this.username = username;
|
this.username = username;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Long getId() {
|
public Long getId() {
|
||||||
return this.id;
|
return this.id;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getUsername() {
|
public String getUsername() {
|
||||||
return this.username;
|
return this.username;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user