diff --git a/api-docs/apiLive.htm b/api-docs/apiLive.htm index bf4364b86..2a51f7371 100644 --- a/api-docs/apiLive.htm +++ b/api-docs/apiLive.htm @@ -17909,7 +17909,14 @@ GET https://DomainName/api/v1/users "officeName": "Head Office", "firstname": "App", "lastname": "Administrator", - "email": "demomfi@mifos.org" + "email": "demomfi@mifos.org", + "selectedRoles": [ + { + "id": 1, + "name": "Super user", + "description": "This role provides all application permissions." + } + ] } ] diff --git a/mifosng-provider/src/main/java/org/mifosplatform/useradministration/api/UsersApiResource.java b/mifosng-provider/src/main/java/org/mifosplatform/useradministration/api/UsersApiResource.java old mode 100644 new mode 100755 index 432201399..8c9f88c51 --- a/mifosng-provider/src/main/java/org/mifosplatform/useradministration/api/UsersApiResource.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/useradministration/api/UsersApiResource.java @@ -5,23 +5,6 @@ */ package org.mifosplatform.useradministration.api; -import java.util.Arrays; -import java.util.Collection; -import java.util.HashSet; -import java.util.Set; - -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.UriInfo; - import org.mifosplatform.commands.domain.CommandWrapper; import org.mifosplatform.commands.service.CommandWrapperBuilder; import org.mifosplatform.commands.service.PortfolioCommandSourceWritePlatformService; @@ -38,6 +21,15 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; +import javax.ws.rs.*; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.UriInfo; +import java.util.Arrays; +import java.util.Collection; +import java.util.HashSet; +import java.util.Set; + @Path("/users") @Component @Scope("singleton") @@ -79,7 +71,7 @@ public class UsersApiResource { this.context.authenticatedUser().validateHasReadPermission(this.resourceNameForPermissions); - final Collection users = this.readPlatformService.retrieveAllUsers(); + final Collection users = this.readPlatformService.retrieveAllUsersWithRoles(); final ApiRequestJsonSerializationSettings settings = this.apiRequestParameterHelper.process(uriInfo.getQueryParameters()); return this.toApiJsonSerializer.serialize(settings, users, this.RESPONSE_DATA_PARAMETERS); diff --git a/mifosng-provider/src/main/java/org/mifosplatform/useradministration/service/AppUserReadPlatformService.java b/mifosng-provider/src/main/java/org/mifosplatform/useradministration/service/AppUserReadPlatformService.java old mode 100644 new mode 100755 index dffdf8b62..9095c701f --- a/mifosng-provider/src/main/java/org/mifosplatform/useradministration/service/AppUserReadPlatformService.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/useradministration/service/AppUserReadPlatformService.java @@ -5,10 +5,10 @@ */ package org.mifosplatform.useradministration.service; -import java.util.Collection; - import org.mifosplatform.useradministration.data.AppUserData; +import java.util.Collection; + public interface AppUserReadPlatformService { Collection retrieveAllUsers(); @@ -18,4 +18,6 @@ public interface AppUserReadPlatformService { AppUserData retrieveNewUserDetails(); AppUserData retrieveUser(Long userId); + + Collection retrieveAllUsersWithRoles(); } \ No newline at end of file diff --git a/mifosng-provider/src/main/java/org/mifosplatform/useradministration/service/AppUserReadPlatformServiceImpl.java b/mifosng-provider/src/main/java/org/mifosplatform/useradministration/service/AppUserReadPlatformServiceImpl.java old mode 100644 new mode 100755 index a41375553..f8cc5020d --- a/mifosng-provider/src/main/java/org/mifosplatform/useradministration/service/AppUserReadPlatformServiceImpl.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/useradministration/service/AppUserReadPlatformServiceImpl.java @@ -5,12 +5,6 @@ */ package org.mifosplatform.useradministration.service; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Set; - import org.mifosplatform.infrastructure.core.domain.JdbcSupport; import org.mifosplatform.infrastructure.core.service.RoutingDataSource; import org.mifosplatform.infrastructure.security.service.PlatformSecurityContext; @@ -28,6 +22,10 @@ import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.RowMapper; import org.springframework.stereotype.Service; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.*; + @Service public class AppUserReadPlatformServiceImpl implements AppUserReadPlatformService { @@ -83,6 +81,22 @@ public class AppUserReadPlatformServiceImpl implements AppUserReadPlatformServic return AppUserData.template(offices, availableRoles); } + @Override + public Collection retrieveAllUsersWithRoles() { + this.context.authenticatedUser(); + final Collection users = this.appUserRepository.findAll(); + Collection appUserData = new HashSet(); + for(final AppUser user : users){ + final Set selectedUserRoles = new HashSet(); + for(final Role role : user.getRoles()){ + selectedUserRoles.add(role.toData()) ; + } + appUserData.add(AppUserData.instance(user.getId(), user.getUsername(), user.getEmail(), user.getOffice().getId(), + user.getOffice().getName(), user.getFirstname(), user.getLastname(),null,selectedUserRoles)) ; + } + return appUserData; + } + @Override public AppUserData retrieveUser(final Long userId) {