diff --git a/doc/Programming-guide/Server-REST-APIs/swagger.json b/doc/Programming-guide/Server-REST-APIs/swagger.json
index 2fc4df6524..c96fdaf6ef 100644
--- a/doc/Programming-guide/Server-REST-APIs/swagger.json
+++ b/doc/Programming-guide/Server-REST-APIs/swagger.json
@@ -639,6 +639,46 @@
}
}
},
+ "/api/admins/{tenantId}" : {
+ "post" : {
+ "tags" : [ "User" ],
+ "summary" : "Select tenant admins by tenant id",
+ "description" : "",
+ "operationId" : "findAllTenantAdminsByTenantId",
+ "parameters" : [ {
+ "name" : "",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "successful operation",
+ "schema" : {
+ "type" : "array",
+ "items" : {
+ "$ref" : "#/definitions/UserDto"
+ }
+ }
+ },
+ "400" : {
+ "description" : "The specified tenantId is not valid"
+ },
+ "401" : {
+ "description" : "The user is not authenticated or invalid credentials were provided"
+ },
+ "403" : {
+ "description" : "The authenticated user does not have the required TENANT_ADMIN role or the Tenant ID of the editing user does not match the Tenant ID of the authenticated user"
+ },
+ "404" : {
+ "description" : "The user with the specified tenantId does not exist"
+ },
+ "500" : {
+ "description" : "An unexpected error occurred on the server side"
+ }
+ }
+ }
+ },
"/api/application" : {
"post" : {
"tags" : [ "Application" ],
diff --git a/pom.xml b/pom.xml
index d591e9d6a4..5da59c6c62 100644
--- a/pom.xml
+++ b/pom.xml
@@ -76,7 +76,6 @@ Copyright 2014-2016 CyberVision, Inc.
4.3.2
2.4.1
1.1.0.Final
- 5.2.2.Final
2.2
4.11
1.42
@@ -135,7 +134,7 @@ Copyright 2014-2016 CyberVision, Inc.
3.1.3
1.5.9
2.2.4
- 2.2.4
+ 2.2.6
5.2.4.Final
diff --git a/server/common/admin-rest-client/src/main/java/org/kaaproject/kaa/server/common/admin/AdminClient.java b/server/common/admin-rest-client/src/main/java/org/kaaproject/kaa/server/common/admin/AdminClient.java
index 0f1599f2fe..aa9fbb5994 100644
--- a/server/common/admin-rest-client/src/main/java/org/kaaproject/kaa/server/common/admin/AdminClient.java
+++ b/server/common/admin-rest-client/src/main/java/org/kaaproject/kaa/server/common/admin/AdminClient.java
@@ -180,6 +180,14 @@ public List getTenants() throws Exception {
return entity.getBody();
}
+
+ public List getAllTenantAdminsBytenantId(String tenantId){
+ ParameterizedTypeReference> typeRef = new ParameterizedTypeReference>() {
+ };
+ ResponseEntity> entity = restTemplate.exchange(restTemplate.getUrl() + "admins/" + tenantId, HttpMethod.GET, null, typeRef);
+ return entity.getBody();
+ }
+
public TenantDto getTenant(String userId) throws Exception {
return restTemplate.getForObject(restTemplate.getUrl() + "tenant/" + userId, TenantDto.class);
}
diff --git a/server/node/src/main/java/org/kaaproject/kaa/server/admin/client/mvp/data/DataSource.java b/server/node/src/main/java/org/kaaproject/kaa/server/admin/client/mvp/data/DataSource.java
index 0cb9acc3bb..f033c7a7ac 100644
--- a/server/node/src/main/java/org/kaaproject/kaa/server/admin/client/mvp/data/DataSource.java
+++ b/server/node/src/main/java/org/kaaproject/kaa/server/admin/client/mvp/data/DataSource.java
@@ -147,7 +147,7 @@ protected void onResult(UserDto result) {
public void loadAllTenantAdminsByTenantId(String tenantId, final AsyncCallback> callback) {
- tenantRpcService.findAllTenantAdminsByTenantId(tenantId, new DataCallback>(
+ userRpcService.findAllTenantAdminsByTenantId(tenantId, new DataCallback>(
callback) {
@Override
protected void onResult(List result) {
diff --git a/server/node/src/main/java/org/kaaproject/kaa/server/admin/controller/AbstractAdminController.java b/server/node/src/main/java/org/kaaproject/kaa/server/admin/controller/AbstractAdminController.java
index 45ba961527..5cf219cab4 100644
--- a/server/node/src/main/java/org/kaaproject/kaa/server/admin/controller/AbstractAdminController.java
+++ b/server/node/src/main/java/org/kaaproject/kaa/server/admin/controller/AbstractAdminController.java
@@ -36,6 +36,7 @@
import org.kaaproject.kaa.server.admin.shared.services.TenantService;
import org.kaaproject.kaa.server.admin.shared.services.UserService;
import org.kaaproject.kaa.server.admin.shared.services.VerifierService;
+import org.kaaproject.kaa.server.control.service.ControlService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -156,6 +157,11 @@ public abstract class AbstractAdminController {
*/
@Autowired
UserFacade userFacade;
+ /**
+ * The control service.
+ */
+ @Autowired
+ ControlService controlService;
/**
* The password encoder.
diff --git a/server/node/src/main/java/org/kaaproject/kaa/server/admin/controller/UserController.java b/server/node/src/main/java/org/kaaproject/kaa/server/admin/controller/UserController.java
index 62528be260..66836bb0ad 100644
--- a/server/node/src/main/java/org/kaaproject/kaa/server/admin/controller/UserController.java
+++ b/server/node/src/main/java/org/kaaproject/kaa/server/admin/controller/UserController.java
@@ -271,4 +271,23 @@ public void deleteUser(
@RequestParam(value = "userId") String userId) throws KaaAdminServiceException {
userService.deleteUser(userId);
}
+
+
+ @ApiOperation(value = "Select tenant admins by tenant id")
+ @ApiResponses(value = {
+ @ApiResponse(code = 400, message = "The specified tenantId is not valid"),
+ @ApiResponse(code = 401, message = "The user is not authenticated or invalid credentials were provided"),
+ @ApiResponse(code = 403, message = "The authenticated user does not have the required TENANT_ADMIN role or the Tenant ID of the editing user " +
+ "does not match the Tenant ID of the authenticated user"),
+ @ApiResponse(code = 404, message = "The user with the specified tenantId does not exist"),
+ @ApiResponse(code = 500, message = "An unexpected error occurred on the server side")})
+ @RequestMapping(value = "admins/{tenantId}", method = RequestMethod.POST)
+ @ResponseStatus(value = HttpStatus.OK)
+ public List findAllTenantAdminsByTenantId(
+ @PathVariable String tenantId) throws KaaAdminServiceException {
+ return userService.findAllTenantAdminsByTenantId(tenantId);
+ }
+
+
+
}
diff --git a/server/node/src/main/java/org/kaaproject/kaa/server/admin/services/TenantServiceImpl.java b/server/node/src/main/java/org/kaaproject/kaa/server/admin/services/TenantServiceImpl.java
index 8b8dea1f27..2a60c56f5d 100644
--- a/server/node/src/main/java/org/kaaproject/kaa/server/admin/services/TenantServiceImpl.java
+++ b/server/node/src/main/java/org/kaaproject/kaa/server/admin/services/TenantServiceImpl.java
@@ -83,20 +83,5 @@ public void deleteTenant(String tenantId) throws KaaAdminServiceException {
}
}
- @Override
- public List findAllTenantAdminsByTenantId(String tenantId) throws KaaAdminServiceException {
- checkAuthority(KaaAuthorityDto.KAA_ADMIN);
- List tenantAdminList=new ArrayList<>();
- try {
- List userDtoList=controlService.findAllTenantAdminsByTenantId(tenantId);
- if(userDtoList!=null){
- for(UserDto userDto:userDtoList)
- tenantAdminList.add(toUser(userDto));
- }
- } catch (Exception e) {
- throw Utils.handleException(e);
- }
- return tenantAdminList;
- }
}
diff --git a/server/node/src/main/java/org/kaaproject/kaa/server/admin/services/UserServiceImpl.java b/server/node/src/main/java/org/kaaproject/kaa/server/admin/services/UserServiceImpl.java
index 0c50902e0c..ed5741a887 100644
--- a/server/node/src/main/java/org/kaaproject/kaa/server/admin/services/UserServiceImpl.java
+++ b/server/node/src/main/java/org/kaaproject/kaa/server/admin/services/UserServiceImpl.java
@@ -145,6 +145,23 @@ public void deleteUser(String userId) throws KaaAdminServiceException {
}
}
+ @Override
+ public List findAllTenantAdminsByTenantId(String tenantId) throws KaaAdminServiceException {
+ checkAuthority(KaaAuthorityDto.KAA_ADMIN);
+ List tenantAdminList=new ArrayList<>();
+ try {
+ List userDtoList=controlService.findAllTenantAdminsByTenantId(tenantId);
+ if(userDtoList!=null){
+ for(UserDto userDto:userDtoList)
+ tenantAdminList.add(toUser(userDto));
+ }
+ } catch (Exception e) {
+ throw Utils.handleException(e);
+ }
+ return tenantAdminList;
+ }
+
+
private void checkUserProfile(UserProfileUpdateDto userProfileUpdateDto) throws KaaAdminServiceException {
if (isEmpty(userProfileUpdateDto.getFirstName())) {
throw new IllegalArgumentException("First name is not valid.");
diff --git a/server/node/src/main/java/org/kaaproject/kaa/server/admin/shared/services/TenantService.java b/server/node/src/main/java/org/kaaproject/kaa/server/admin/shared/services/TenantService.java
index ebc370b939..049c495531 100644
--- a/server/node/src/main/java/org/kaaproject/kaa/server/admin/shared/services/TenantService.java
+++ b/server/node/src/main/java/org/kaaproject/kaa/server/admin/shared/services/TenantService.java
@@ -34,5 +34,4 @@ public interface TenantService extends RemoteService {
void deleteTenant(String tenantId) throws KaaAdminServiceException;
- List findAllTenantAdminsByTenantId(String id) throws KaaAdminServiceException;
}
diff --git a/server/node/src/main/java/org/kaaproject/kaa/server/admin/shared/services/UserService.java b/server/node/src/main/java/org/kaaproject/kaa/server/admin/shared/services/UserService.java
index 403accd95a..07bf5dbeb4 100644
--- a/server/node/src/main/java/org/kaaproject/kaa/server/admin/shared/services/UserService.java
+++ b/server/node/src/main/java/org/kaaproject/kaa/server/admin/shared/services/UserService.java
@@ -37,4 +37,6 @@ public interface UserService extends RemoteService {
UserDto editUser(UserDto user) throws KaaAdminServiceException;
void deleteUser(String userId) throws KaaAdminServiceException;
+
+ List findAllTenantAdminsByTenantId(String id) throws KaaAdminServiceException;
}