diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/UserManagementServiceImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/UserManagementServiceImpl.java index 75e3857725e..831c279c27b 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/UserManagementServiceImpl.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/UserManagementServiceImpl.java @@ -88,12 +88,12 @@ public class UserManagementServiceImpl implements UserManagementService { // Permissions that are given for a normal device user. private static final Permission[] PERMISSIONS_FOR_DEVICE_USER = { - new Permission("/permission/admin/Login", "ui.execute"), - new Permission("/permission/admin/device-mgt/device/api/subscribe", "ui.execute"), - new Permission("/permission/admin/device-mgt/devices/enroll", "ui.execute"), - new Permission("/permission/admin/device-mgt/devices/disenroll", "ui.execute"), - new Permission("/permission/admin/device-mgt/devices/owning-device/view", "ui.execute"), - new Permission("/permission/admin/manage/portal", "ui.execute") + new Permission("/permission/admin/Login", "ui.execute"), + new Permission("/permission/admin/device-mgt/device/api/subscribe", "ui.execute"), + new Permission("/permission/admin/device-mgt/devices/enroll", "ui.execute"), + new Permission("/permission/admin/device-mgt/devices/disenroll", "ui.execute"), + new Permission("/permission/admin/device-mgt/devices/owning-device/view", "ui.execute"), + new Permission("/permission/admin/manage/portal", "ui.execute") }; @POST @@ -134,7 +134,7 @@ public class UserManagementServiceImpl implements UserManagementService { } userStoreManager.addUser(userInfo.getUsername(), initialUserPassword, - roles, defaultUserClaims, null); + roles, defaultUserClaims, null); // Outputting debug message upon successful addition of user if (log.isDebugEnabled()) { log.debug("User '" + userInfo.getUsername() + "' has successfully been added."); @@ -158,7 +158,7 @@ public class UserManagementServiceImpl implements UserManagementService { dms.sendRegistrationEmail(metaInfo); return Response.created(new URI(API_BASE_PATH + "/" + URIEncoder.encode(userInfo.getUsername(), "UTF-8"))) .entity( - createdUserInfo).build(); + createdUserInfo).build(); } catch (UserStoreException e) { String msg = "Error occurred while trying to add user '" + userInfo.getUsername() + "' to the " + "underlying user management system"; @@ -227,11 +227,11 @@ public class UserManagementServiceImpl implements UserManagementService { if (!userStoreManager.isExistingUser(username)) { if (log.isDebugEnabled()) { log.debug("User by username: " + username + - " doesn't exists. Therefore, request made to update user was refused."); + " doesn't exists. Therefore, request made to update user was refused."); } return Response.status(Response.Status.NOT_FOUND).entity( new ErrorResponse.ErrorResponseBuilder().setMessage("User by username: " + - username + " doesn't exist.").build()).build(); + username + " doesn't exist.").build()).build(); } Map defaultUserClaims = @@ -240,7 +240,7 @@ public class UserManagementServiceImpl implements UserManagementService { if (StringUtils.isNotEmpty(userInfo.getPassword())) { // Decoding Base64 encoded password userStoreManager.updateCredentialByAdmin(username, - userInfo.getPassword()); + userInfo.getPassword()); log.debug("User credential of username: " + username + " has been changed"); } List currentRoles = this.getFilteredRoles(userStoreManager, username); @@ -259,8 +259,8 @@ public class UserManagementServiceImpl implements UserManagementService { rolesToDelete.remove(ROLE_EVERYONE); rolesToAdd.remove(ROLE_EVERYONE); userStoreManager.updateRoleListOfUser(username, - rolesToDelete.toArray(new String[rolesToDelete.size()]), - rolesToAdd.toArray(new String[rolesToAdd.size()])); + rolesToDelete.toArray(new String[rolesToDelete.size()]), + rolesToAdd.toArray(new String[rolesToAdd.size()])); userStoreManager.setUserClaimValues(username, defaultUserClaims, null); // Outputting debug message upon successful addition of user if (log.isDebugEnabled()) { @@ -363,7 +363,7 @@ public class UserManagementServiceImpl implements UserManagementService { } RequestValidationUtil.validatePaginationParameters(offset, limit); - if (limit == 0){ + if (limit == 0) { limit = Constants.DEFAULT_PAGE_LIMIT; } List userList, offsetList; @@ -422,7 +422,7 @@ public class UserManagementServiceImpl implements UserManagementService { UserStoreCountRetriever userStoreCountRetrieverService = DeviceMgtAPIUtils.getUserStoreCountRetrieverService(); RealmConfiguration secondaryRealmConfiguration = CarbonContext.getThreadLocalCarbonContext().getUserRealm(). getRealmConfiguration().getSecondaryRealmConfig(); - + if (secondaryRealmConfiguration != null) { if (!secondaryRealmConfiguration.isPrimary() && !Constants.JDBC_USERSTOREMANAGER. equals(secondaryRealmConfiguration.getUserStoreClass().getClass())) { @@ -475,7 +475,8 @@ public class UserManagementServiceImpl implements UserManagementService { @GET @Path("/checkUser") - @Override public Response isUserExists(@QueryParam("username") String userName) { + @Override + public Response isUserExists(@QueryParam("username") String userName) { try { UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager(); boolean userExists = false; @@ -496,7 +497,7 @@ public class UserManagementServiceImpl implements UserManagementService { @Path("/search/usernames") @Override public Response getUserNames(@QueryParam("filter") String filter, @QueryParam("domain") String domain, - @HeaderParam("If-Modified-Since") String timestamp, + @HeaderParam("If-Modified-Since") String timestamp, @QueryParam("offset") int offset, @QueryParam("limit") int limit) { if (log.isDebugEnabled()) { log.debug("Getting the list of users with all user-related information using the filter : " + filter); @@ -505,21 +506,23 @@ public class UserManagementServiceImpl implements UserManagementService { if (domain != null && !domain.isEmpty()) { userStoreDomain = domain; } + if (limit == 0){ + //If there is no limit is passed, then return all. + limit = -1; + } List userList; try { UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager(); - String[] users = userStoreManager.listUsers(userStoreDomain + "/*", -1); + String[] users = userStoreManager.listUsers(userStoreDomain + "/" + filter + "*", limit); userList = new ArrayList<>(); UserInfo user; for (String username : users) { - if (username.contains(filter)) { - user = new UserInfo(); - user.setUsername(username); - user.setEmailAddress(getClaimValue(username, Constants.USER_CLAIM_EMAIL_ADDRESS)); - user.setFirstname(getClaimValue(username, Constants.USER_CLAIM_FIRST_NAME)); - user.setLastname(getClaimValue(username, Constants.USER_CLAIM_LAST_NAME)); - userList.add(user); - } + user = new UserInfo(); + user.setUsername(username); + user.setEmailAddress(getClaimValue(username, Constants.USER_CLAIM_EMAIL_ADDRESS)); + user.setFirstname(getClaimValue(username, Constants.USER_CLAIM_FIRST_NAME)); + user.setLastname(getClaimValue(username, Constants.USER_CLAIM_LAST_NAME)); + userList.add(user); } return Response.status(Response.Status.OK).entity(userList).build(); } catch (UserStoreException e) { @@ -560,7 +563,7 @@ public class UserManagementServiceImpl implements UserManagementService { EmailMetaInfo metaInfo = new EmailMetaInfo(recipient, props); dms.sendEnrolmentInvitation(DeviceManagementConstants.EmailAttributes.USER_ENROLLMENT_TEMPLATE, - metaInfo); + metaInfo); } } catch (DeviceManagementException e) { String msg = "Error occurred while inviting user to enrol their device"; @@ -662,8 +665,8 @@ public class UserManagementServiceImpl implements UserManagementService { private String getEnrollmentTemplateName(String deviceType) { String templateName = deviceType + "-enrollment-invitation"; File template = new File(CarbonUtils.getCarbonHome() + File.separator + "repository" + File.separator - + "resources" + File.separator + "email-templates" + File.separator + templateName - + ".vm"); + + "resources" + File.separator + "email-templates" + File.separator + templateName + + ".vm"); if (template.exists()) { return templateName; } else {