example of roles api for john.
This commit is contained in:
+22
@@ -0,0 +1,22 @@
|
|||||||
|
package org.mifosng.platform.accounting.api.commands;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class RolePermissionCommand {
|
||||||
|
|
||||||
|
private final Long roleId;
|
||||||
|
private final Map<String, Boolean> permissions;
|
||||||
|
|
||||||
|
public RolePermissionCommand(final Long roleId, final Map<String, Boolean> permissionsMap) {
|
||||||
|
this.roleId = roleId;
|
||||||
|
this.permissions = permissionsMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<String, Boolean> getPermissions() {
|
||||||
|
return this.permissions;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getRoleId() {
|
||||||
|
return this.roleId;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -15,12 +15,13 @@ import javax.ws.rs.core.Context;
|
|||||||
import javax.ws.rs.core.MediaType;
|
import javax.ws.rs.core.MediaType;
|
||||||
import javax.ws.rs.core.UriInfo;
|
import javax.ws.rs.core.UriInfo;
|
||||||
|
|
||||||
|
import org.mifosng.platform.accounting.api.commands.RolePermissionCommand;
|
||||||
import org.mifosng.platform.api.commands.RoleCommand;
|
import org.mifosng.platform.api.commands.RoleCommand;
|
||||||
import org.mifosng.platform.api.data.EntityIdentifier;
|
import org.mifosng.platform.api.data.EntityIdentifier;
|
||||||
import org.mifosng.platform.api.data.PermissionData;
|
import org.mifosng.platform.api.data.PermissionData;
|
||||||
import org.mifosng.platform.api.data.PermissionUsageData;
|
import org.mifosng.platform.api.data.PermissionUsageData;
|
||||||
import org.mifosng.platform.api.data.RoleData;
|
import org.mifosng.platform.api.data.RoleData;
|
||||||
import org.mifosng.platform.api.data.RolePermissionData;
|
import org.mifosng.platform.api.data.RolePermissionsData;
|
||||||
import org.mifosng.platform.api.infrastructure.PortfolioApiDataConversionService;
|
import org.mifosng.platform.api.infrastructure.PortfolioApiDataConversionService;
|
||||||
import org.mifosng.platform.api.infrastructure.PortfolioApiJsonSerializerService;
|
import org.mifosng.platform.api.infrastructure.PortfolioApiJsonSerializerService;
|
||||||
import org.mifosng.platform.infrastructure.api.ApiParameterHelper;
|
import org.mifosng.platform.infrastructure.api.ApiParameterHelper;
|
||||||
@@ -57,8 +58,8 @@ public class RolesApiResource {
|
|||||||
private PlatformSecurityContext context;
|
private PlatformSecurityContext context;
|
||||||
|
|
||||||
@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(entityType);
|
context.authenticatedUser().validateHasReadPermission(entityType);
|
||||||
@@ -73,8 +74,8 @@ public class RolesApiResource {
|
|||||||
|
|
||||||
@GET
|
@GET
|
||||||
@Path("template")
|
@Path("template")
|
||||||
@Consumes({MediaType.APPLICATION_JSON})
|
@Consumes({ MediaType.APPLICATION_JSON })
|
||||||
@Produces({MediaType.APPLICATION_JSON})
|
@Produces({ MediaType.APPLICATION_JSON })
|
||||||
public String retrieveNewRoleDetails(@Context final UriInfo uriInfo) {
|
public String retrieveNewRoleDetails(@Context final UriInfo uriInfo) {
|
||||||
|
|
||||||
context.authenticatedUser().validateHasReadPermission(entityType);
|
context.authenticatedUser().validateHasReadPermission(entityType);
|
||||||
@@ -90,8 +91,8 @@ 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 jsonRequestBody) {
|
public String createRole(final String jsonRequestBody) {
|
||||||
|
|
||||||
final RoleCommand command = this.apiDataConversionService.convertJsonToRoleCommand(null, jsonRequestBody);
|
final RoleCommand command = this.apiDataConversionService.convertJsonToRoleCommand(null, jsonRequestBody);
|
||||||
@@ -101,14 +102,18 @@ public class RolesApiResource {
|
|||||||
return this.apiJsonSerializerService.serializeEntityIdentifier(new EntityIdentifier(roleId));
|
return this.apiJsonSerializerService.serializeEntityIdentifier(new EntityIdentifier(roleId));
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO - General thing to fix about REST API is if use partial response approach of fields=id,name,selectedPermissions
|
// TODO - General thing to fix about REST API is if use partial response
|
||||||
// It will return just id,name parameters of RoleData and ignore description, however as PermissionData used in selectedPermissions collection
|
// approach of fields=id,name,selectedPermissions
|
||||||
// also has a field called description it gets ignored also. This is because of the implementation of ParameterListExclusionStrategy which doesnt take
|
// It will return just id,name parameters of RoleData and ignore
|
||||||
|
// description, however as PermissionData used in selectedPermissions
|
||||||
|
// collection
|
||||||
|
// also has a field called description it gets ignored also. This is because
|
||||||
|
// of the implementation of ParameterListExclusionStrategy which doesnt take
|
||||||
// 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(entityType);
|
context.authenticatedUser().validateHasReadPermission(entityType);
|
||||||
@@ -130,8 +135,8 @@ 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 jsonRequestBody) {
|
public String updateRole(@PathParam("roleId") final Long roleId, final String jsonRequestBody) {
|
||||||
|
|
||||||
final RoleCommand command = this.apiDataConversionService.convertJsonToRoleCommand(roleId, jsonRequestBody);
|
final RoleCommand command = this.apiDataConversionService.convertJsonToRoleCommand(roleId, jsonRequestBody);
|
||||||
@@ -143,8 +148,8 @@ public class RolesApiResource {
|
|||||||
|
|
||||||
@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(entityType);
|
context.authenticatedUser().validateHasReadPermission(entityType);
|
||||||
@@ -154,26 +159,23 @@ public class RolesApiResource {
|
|||||||
|
|
||||||
RoleData role = this.roleReadPlatformService.retrieveRole(roleId);
|
RoleData role = this.roleReadPlatformService.retrieveRole(roleId);
|
||||||
Collection<PermissionUsageData> permissionUsageData = this.permissionReadPlatformService.retrieveAllRolePermissions(roleId);
|
Collection<PermissionUsageData> permissionUsageData = this.permissionReadPlatformService.retrieveAllRolePermissions(roleId);
|
||||||
RolePermissionData rolePermissionData = new RolePermissionData(role.getId(), role.getName(), role.getDescription(), permissionUsageData);
|
RolePermissionsData permissionsData = new RolePermissionsData(role.getId(), role.getName(), role.getDescription(),
|
||||||
|
permissionUsageData);
|
||||||
|
|
||||||
return this.apiJsonSerializerService.serializeRolePermissionDataToJson(prettyPrint, responseParameters, rolePermissionData);
|
return this.apiJsonSerializerService.serializeRolePermissionDataToJson(prettyPrint, responseParameters, permissionsData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@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, @Context final UriInfo uriInfo) {
|
public String updateRolePermissions(@PathParam("roleId") final Long roleId, final String jsonRequestBody) {
|
||||||
return "{}";
|
|
||||||
/*
|
|
||||||
final Set<String> responseParameters = ApiParameterHelper.extractFieldsForResponseIfProvided(uriInfo.getQueryParameters());
|
|
||||||
final boolean prettyPrint = ApiParameterHelper.prettyPrint(uriInfo.getQueryParameters());
|
|
||||||
|
|
||||||
RoleData role = this.roleReadPlatformService.retrieveRole(roleId);
|
final RolePermissionCommand command = this.apiDataConversionService.convertJsonToRolePermissionCommand(roleId, jsonRequestBody);
|
||||||
Collection<PermissionUsageData> permissionUsageData = this.permissionReadPlatformService.retrieveAllRolePermissions(roleId);
|
|
||||||
RolePermissionData rolePermissionData = new RolePermissionData(role.getId(), role.getName(), role.getDescription(), permissionUsageData);
|
|
||||||
|
|
||||||
return this.apiJsonSerializerService.serializeRolePermissionDataToJson(prettyPrint, responseParameters, rolePermissionData);*/
|
this.roleWritePlatformService.updateRolePermissions(command);
|
||||||
|
|
||||||
|
return this.apiJsonSerializerService.serializeEntityIdentifier(new EntityIdentifier(roleId));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
+1
-2
@@ -8,8 +8,7 @@ public class PermissionUsageData {
|
|||||||
private final String actionName;
|
private final String actionName;
|
||||||
private final Boolean selected;
|
private final Boolean selected;
|
||||||
|
|
||||||
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 selected) {
|
||||||
this.grouping = grouping;
|
this.grouping = grouping;
|
||||||
this.code = code;
|
this.code = code;
|
||||||
|
|||||||
@@ -1,38 +0,0 @@
|
|||||||
package org.mifosng.platform.api.data;
|
|
||||||
|
|
||||||
import java.util.Collection;
|
|
||||||
|
|
||||||
public class RolePermissionData {
|
|
||||||
|
|
||||||
private final Long id;
|
|
||||||
private final String name;
|
|
||||||
private final String description;
|
|
||||||
|
|
||||||
private final Collection<PermissionUsageData> permissionUsageData;
|
|
||||||
|
|
||||||
public RolePermissionData(final Long id, final String name,
|
|
||||||
final String description,
|
|
||||||
final Collection<PermissionUsageData> permissionUsageData) {
|
|
||||||
this.id = id;
|
|
||||||
this.name = name;
|
|
||||||
this.description = description;
|
|
||||||
this.permissionUsageData = permissionUsageData;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Long getId() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getName() {
|
|
||||||
return name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDescription() {
|
|
||||||
return description;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Collection<PermissionUsageData> getPermissionUsageData() {
|
|
||||||
return permissionUsageData;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
package org.mifosng.platform.api.data;
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
|
|
||||||
|
public class RolePermissionsData {
|
||||||
|
|
||||||
|
private final Long id;
|
||||||
|
private final String name;
|
||||||
|
private final String description;
|
||||||
|
|
||||||
|
private final Collection<PermissionUsageData> permissionUsageData;
|
||||||
|
|
||||||
|
public RolePermissionsData(final Long id, final String name, final String description,
|
||||||
|
final Collection<PermissionUsageData> permissionUsageData) {
|
||||||
|
this.id = id;
|
||||||
|
this.name = name;
|
||||||
|
this.description = description;
|
||||||
|
this.permissionUsageData = permissionUsageData;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDescription() {
|
||||||
|
return description;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Collection<PermissionUsageData> getPermissionUsageData() {
|
||||||
|
return permissionUsageData;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
+2
-2
@@ -38,7 +38,7 @@ import org.mifosng.platform.api.data.OfficeData;
|
|||||||
import org.mifosng.platform.api.data.OfficeTransactionData;
|
import org.mifosng.platform.api.data.OfficeTransactionData;
|
||||||
import org.mifosng.platform.api.data.PermissionData;
|
import org.mifosng.platform.api.data.PermissionData;
|
||||||
import org.mifosng.platform.api.data.RoleData;
|
import org.mifosng.platform.api.data.RoleData;
|
||||||
import org.mifosng.platform.api.data.RolePermissionData;
|
import org.mifosng.platform.api.data.RolePermissionsData;
|
||||||
import org.mifosng.platform.api.data.SavingAccountData;
|
import org.mifosng.platform.api.data.SavingAccountData;
|
||||||
import org.mifosng.platform.api.data.SavingProductData;
|
import org.mifosng.platform.api.data.SavingProductData;
|
||||||
import org.mifosng.platform.api.data.StaffData;
|
import org.mifosng.platform.api.data.StaffData;
|
||||||
@@ -232,7 +232,7 @@ public class GoogleGsonPortfolioApiJsonSerializerService implements PortfolioApi
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String serializeRolePermissionDataToJson(final boolean prettyPrint, final Set<String> responseParameters,
|
public String serializeRolePermissionDataToJson(final boolean prettyPrint, final Set<String> responseParameters,
|
||||||
final RolePermissionData rolePermissionData) {
|
final RolePermissionsData rolePermissionData) {
|
||||||
final Gson gsonDeserializer = helper.createGsonBuilderWithParameterExclusionSerializationStrategy(ROLE_PERMISSION_DATA_PARAMETERS,
|
final Gson gsonDeserializer = helper.createGsonBuilderWithParameterExclusionSerializationStrategy(ROLE_PERMISSION_DATA_PARAMETERS,
|
||||||
prettyPrint, responseParameters);
|
prettyPrint, responseParameters);
|
||||||
return helper.serializedJsonFrom(gsonDeserializer, rolePermissionData);
|
return helper.serializedJsonFrom(gsonDeserializer, rolePermissionData);
|
||||||
|
|||||||
+3
@@ -1,5 +1,6 @@
|
|||||||
package org.mifosng.platform.api.infrastructure;
|
package org.mifosng.platform.api.infrastructure;
|
||||||
|
|
||||||
|
import org.mifosng.platform.accounting.api.commands.RolePermissionCommand;
|
||||||
import org.mifosng.platform.api.commands.AdjustLoanTransactionCommand;
|
import org.mifosng.platform.api.commands.AdjustLoanTransactionCommand;
|
||||||
import org.mifosng.platform.api.commands.BranchMoneyTransferCommand;
|
import org.mifosng.platform.api.commands.BranchMoneyTransferCommand;
|
||||||
import org.mifosng.platform.api.commands.LoanReassignmentCommand;
|
import org.mifosng.platform.api.commands.LoanReassignmentCommand;
|
||||||
@@ -41,6 +42,8 @@ public interface PortfolioApiDataConversionService {
|
|||||||
|
|
||||||
RoleCommand convertJsonToRoleCommand(Long resourceIdentifier, String json);
|
RoleCommand convertJsonToRoleCommand(Long resourceIdentifier, String json);
|
||||||
|
|
||||||
|
RolePermissionCommand convertJsonToRolePermissionCommand(Long roleId, String jsonRequestBody);
|
||||||
|
|
||||||
UserCommand convertJsonToUserCommand(Long resourceIdentifier, String json);
|
UserCommand convertJsonToUserCommand(Long resourceIdentifier, String json);
|
||||||
|
|
||||||
BranchMoneyTransferCommand convertJsonToBranchMoneyTransferCommand(String json);
|
BranchMoneyTransferCommand convertJsonToBranchMoneyTransferCommand(String json);
|
||||||
|
|||||||
+12
@@ -17,6 +17,7 @@ import java.util.Set;
|
|||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.joda.time.LocalDate;
|
import org.joda.time.LocalDate;
|
||||||
import org.joda.time.format.DateTimeFormat;
|
import org.joda.time.format.DateTimeFormat;
|
||||||
|
import org.mifosng.platform.accounting.api.commands.RolePermissionCommand;
|
||||||
import org.mifosng.platform.api.commands.AdjustLoanTransactionCommand;
|
import org.mifosng.platform.api.commands.AdjustLoanTransactionCommand;
|
||||||
import org.mifosng.platform.api.commands.BranchMoneyTransferCommand;
|
import org.mifosng.platform.api.commands.BranchMoneyTransferCommand;
|
||||||
import org.mifosng.platform.api.commands.ChargeCommand;
|
import org.mifosng.platform.api.commands.ChargeCommand;
|
||||||
@@ -264,6 +265,17 @@ public class PortfolioApiDataConversionServiceImpl implements PortfolioApiDataCo
|
|||||||
return new RoleCommand(modifiedParameters, resourceIdentifier, name, description, permissionIds);
|
return new RoleCommand(modifiedParameters, resourceIdentifier, name, description, permissionIds);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public RolePermissionCommand convertJsonToRolePermissionCommand(final Long roleId, final String json) {
|
||||||
|
|
||||||
|
if (StringUtils.isBlank(json)) { throw new InvalidJsonException(); }
|
||||||
|
|
||||||
|
final Type typeOfMap = new TypeToken<Map<String, Boolean>>() {}.getType();
|
||||||
|
final Map<String, Boolean> permissionsMap = gsonConverter.fromJson(json, typeOfMap);
|
||||||
|
|
||||||
|
return new RolePermissionCommand(roleId, permissionsMap);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public UserCommand convertJsonToUserCommand(final Long resourceIdentifier, final String json) {
|
public UserCommand convertJsonToUserCommand(final Long resourceIdentifier, final String json) {
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -36,7 +36,7 @@ import org.mifosng.platform.api.data.OfficeData;
|
|||||||
import org.mifosng.platform.api.data.OfficeTransactionData;
|
import org.mifosng.platform.api.data.OfficeTransactionData;
|
||||||
import org.mifosng.platform.api.data.PermissionData;
|
import org.mifosng.platform.api.data.PermissionData;
|
||||||
import org.mifosng.platform.api.data.RoleData;
|
import org.mifosng.platform.api.data.RoleData;
|
||||||
import org.mifosng.platform.api.data.RolePermissionData;
|
import org.mifosng.platform.api.data.RolePermissionsData;
|
||||||
import org.mifosng.platform.api.data.SavingAccountData;
|
import org.mifosng.platform.api.data.SavingAccountData;
|
||||||
import org.mifosng.platform.api.data.SavingProductData;
|
import org.mifosng.platform.api.data.SavingProductData;
|
||||||
import org.mifosng.platform.api.data.StaffData;
|
import org.mifosng.platform.api.data.StaffData;
|
||||||
@@ -57,7 +57,7 @@ public interface PortfolioApiJsonSerializerService {
|
|||||||
|
|
||||||
String serializeRoleDataToJson(boolean prettyPrint, Set<String> responseParameters, RoleData role);
|
String serializeRoleDataToJson(boolean prettyPrint, Set<String> responseParameters, RoleData role);
|
||||||
|
|
||||||
String serializeRolePermissionDataToJson(boolean prettyPrint, Set<String> responseParameters, RolePermissionData rolePermissionData);
|
String serializeRolePermissionDataToJson(boolean prettyPrint, Set<String> responseParameters, RolePermissionsData rolePermissionData);
|
||||||
|
|
||||||
String serializeAppUserDataToJson(boolean prettyPrint, Set<String> responseParameters, Collection<AppUserData> users);
|
String serializeAppUserDataToJson(boolean prettyPrint, Set<String> responseParameters, Collection<AppUserData> users);
|
||||||
|
|
||||||
|
|||||||
+4
@@ -1,5 +1,6 @@
|
|||||||
package org.mifosng.platform.user.service;
|
package org.mifosng.platform.user.service;
|
||||||
|
|
||||||
|
import org.mifosng.platform.accounting.api.commands.RolePermissionCommand;
|
||||||
import org.mifosng.platform.api.commands.RoleCommand;
|
import org.mifosng.platform.api.commands.RoleCommand;
|
||||||
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
|
|
||||||
@@ -10,4 +11,7 @@ public interface RoleWritePlatformService {
|
|||||||
|
|
||||||
@PreAuthorize(value = "hasAnyRole('ALL_FUNCTIONS', 'USER_ADMINISTRATION_SUPER_USER', 'UPDATE_ROLE')")
|
@PreAuthorize(value = "hasAnyRole('ALL_FUNCTIONS', 'USER_ADMINISTRATION_SUPER_USER', 'UPDATE_ROLE')")
|
||||||
Long updateRole(RoleCommand command);
|
Long updateRole(RoleCommand command);
|
||||||
|
|
||||||
|
@PreAuthorize(value = "hasAnyRole('ALL_FUNCTIONS', 'USER_ADMINISTRATION_SUPER_USER', 'PERMISSIONS_ROLE')")
|
||||||
|
Long updateRolePermissions(RolePermissionCommand command);
|
||||||
}
|
}
|
||||||
+33
-4
@@ -3,7 +3,9 @@ package org.mifosng.platform.user.service;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.mifosng.platform.accounting.api.commands.RolePermissionCommand;
|
||||||
import org.mifosng.platform.api.commands.RoleCommand;
|
import org.mifosng.platform.api.commands.RoleCommand;
|
||||||
import org.mifosng.platform.exceptions.RoleNotFoundException;
|
import org.mifosng.platform.exceptions.RoleNotFoundException;
|
||||||
import org.mifosng.platform.security.PlatformSecurityContext;
|
import org.mifosng.platform.security.PlatformSecurityContext;
|
||||||
@@ -25,7 +27,8 @@ public class RoleWritePlatformServiceJpaRepositoryImpl implements RoleWritePlatf
|
|||||||
private final PermissionRepository permissionRepository;
|
private final PermissionRepository permissionRepository;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
public RoleWritePlatformServiceJpaRepositoryImpl(final PlatformSecurityContext context, final RoleRepository roleRepository, final PermissionRepository permissionRepository) {
|
public RoleWritePlatformServiceJpaRepositoryImpl(final PlatformSecurityContext context, final RoleRepository roleRepository,
|
||||||
|
final PermissionRepository permissionRepository) {
|
||||||
this.context = context;
|
this.context = context;
|
||||||
this.roleRepository = roleRepository;
|
this.roleRepository = roleRepository;
|
||||||
this.permissionRepository = permissionRepository;
|
this.permissionRepository = permissionRepository;
|
||||||
@@ -61,9 +64,7 @@ public class RoleWritePlatformServiceJpaRepositoryImpl implements RoleWritePlatf
|
|||||||
List<Permission> selectedPermissions = assembleListOfSelectedPermissions(command.getPermissions());
|
List<Permission> selectedPermissions = assembleListOfSelectedPermissions(command.getPermissions());
|
||||||
|
|
||||||
Role role = this.roleRepository.findOne(command.getId());
|
Role role = this.roleRepository.findOne(command.getId());
|
||||||
if (role == null) {
|
if (role == null) { throw new RoleNotFoundException(command.getId()); }
|
||||||
throw new RoleNotFoundException(command.getId());
|
|
||||||
}
|
|
||||||
role.update(command, selectedPermissions);
|
role.update(command, selectedPermissions);
|
||||||
|
|
||||||
this.roleRepository.save(role);
|
this.roleRepository.save(role);
|
||||||
@@ -71,6 +72,34 @@ public class RoleWritePlatformServiceJpaRepositoryImpl implements RoleWritePlatf
|
|||||||
return role.getId();
|
return role.getId();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Transactional
|
||||||
|
@Override
|
||||||
|
public Long updateRolePermissions(final RolePermissionCommand command) {
|
||||||
|
context.authenticatedUser();
|
||||||
|
|
||||||
|
// RoleCommandValidator validator = new RoleCommandValidator(command);
|
||||||
|
// validator.validateForUpdate();
|
||||||
|
|
||||||
|
final Role role = this.roleRepository.findOne(command.getRoleId());
|
||||||
|
if (role == null) {
|
||||||
|
throw new RoleNotFoundException(command.getRoleId());
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, Boolean> permissions = command.getPermissions();
|
||||||
|
for (String permissionCode : permissions.keySet()) {
|
||||||
|
Boolean selected = permissions.get(permissionCode);
|
||||||
|
if (selected.booleanValue()) {
|
||||||
|
// this.permissionRepository.findOne(id)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// role.update(command, selectedPermissions);
|
||||||
|
|
||||||
|
this.roleRepository.save(role);
|
||||||
|
|
||||||
|
return role.getId();
|
||||||
|
}
|
||||||
|
|
||||||
private List<Permission> assembleListOfSelectedPermissions(final String[] selectedPermissionsArray) {
|
private List<Permission> assembleListOfSelectedPermissions(final String[] selectedPermissionsArray) {
|
||||||
List<Long> selectedPermissionIds = new ArrayList<Long>();
|
List<Long> selectedPermissionIds = new ArrayList<Long>();
|
||||||
List<Permission> selectedPermissions = new ArrayList<Permission>();
|
List<Permission> selectedPermissions = new ArrayList<Permission>();
|
||||||
|
|||||||
Reference in New Issue
Block a user