X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=webapp-backend%2Fsrc%2Fmain%2Fjava%2Forg%2Foransc%2Fric%2Fportal%2Fdashboard%2Fcontroller%2FAdminController.java;h=ccdf1bcd8ddc68621b93b52ce9183f5b7d40fd6c;hb=refs%2Fchanges%2F58%2F2258%2F2;hp=6b420d3c26c16ad9dd27ce637ccf9acf417d3c10;hpb=44203c43bb16a87eb54cc97431a026e111842c97;p=portal%2Fric-dashboard.git diff --git a/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/controller/AdminController.java b/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/controller/AdminController.java index 6b420d3c..ccdf1bcd 100644 --- a/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/controller/AdminController.java +++ b/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/controller/AdminController.java @@ -20,24 +20,29 @@ package org.oransc.ric.portal.dashboard.controller; import java.lang.invoke.MethodHandles; +import java.util.List; import javax.servlet.http.HttpServletResponse; +import org.onap.portalsdk.core.restful.domain.EcompUser; import org.oransc.ric.portal.dashboard.DashboardApplication; import org.oransc.ric.portal.dashboard.DashboardConstants; -import org.oransc.ric.portal.dashboard.model.DashboardUser; +import org.oransc.ric.portal.dashboard.DashboardUserManager; import org.oransc.ric.portal.dashboard.model.ErrorTransport; import org.oransc.ric.portal.dashboard.model.IDashboardResponse; +import org.oransc.ric.portal.dashboard.model.RicInstanceKeyName; +import org.oransc.ric.portal.dashboard.model.RicInstanceList; import org.oransc.ric.portal.dashboard.model.SuccessTransport; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.http.MediaType; import org.springframework.security.access.annotation.Secured; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.RestController; import io.swagger.annotations.ApiOperation; @@ -52,31 +57,23 @@ public class AdminController { // Publish paths in constants so tests are easy to write public static final String CONTROLLER_PATH = DashboardConstants.ENDPOINT_PREFIX + "/admin"; - public static final String USER_METHOD = "user"; public static final String HEALTH_METHOD = "health"; + public static final String INSTANCE_METHOD = "instance"; + public static final String USER_METHOD = "user"; public static final String VERSION_METHOD = DashboardConstants.VERSION_METHOD; public static final String XAPPMETRICS_METHOD = "metrics"; - private final DashboardUser[] users; - - private static final String ACTIVE = "Active"; - private static final String INACTIVE = "Inactive"; - @Value("${metrics.url.ac}") private String acAppMetricsUrl; @Value("${metrics.url.mc}") private String mcAppMetricsUrl; - public AdminController() { - // Mock data - users = new DashboardUser[] { // - new DashboardUser(1, "John", "Doe", ACTIVE), // - new DashboardUser(2, "Alice", "Nolan", ACTIVE), // - new DashboardUser(3, "Pierce", "King", INACTIVE), // - new DashboardUser(4, "Paul", "Smith", INACTIVE), // - new DashboardUser(5, "Jack", "Reacher", ACTIVE) }; - } + @Autowired + private DashboardUserManager dashboardUserManager; + + @Autowired + private RicInstanceList instanceConfig; @ApiOperation(value = "Gets the Dashboard MANIFEST.MF property Implementation-Version.", response = SuccessTransport.class) @GetMapping(VERSION_METHOD) @@ -97,16 +94,25 @@ public class AdminController { return new SuccessTransport(200, "Dashboard is healthy!"); } - @ApiOperation(value = "Gets the list of application users.", response = DashboardUser.class, responseContainer = "List") + @ApiOperation(value = "Gets the list of application users.", response = EcompUser.class, responseContainer = "List") @GetMapping(USER_METHOD) - @Secured({ DashboardConstants.ROLE_ADMIN }) - public DashboardUser[] getUsers() { + @Secured({ DashboardConstants.ROLE_ADMIN }) // regular users should not see this + public List getUsers() { logger.debug("getUsers"); - return users; + return dashboardUserManager.getUsers(); + } + + @ApiOperation(value = "Gets the list of RIC instances.", response = RicInstanceKeyName.class, responseContainer = "List") + @GetMapping(INSTANCE_METHOD) + @Secured({ DashboardConstants.ROLE_ADMIN, DashboardConstants.ROLE_STANDARD }) + public List getInstances() { + logger.debug("getInstances"); + return instanceConfig.getKeyNameList(); } @ApiOperation(value = "Gets the kibana metrics URL for the specified app.", response = SuccessTransport.class) @GetMapping(XAPPMETRICS_METHOD) + @Secured({ DashboardConstants.ROLE_ADMIN, DashboardConstants.ROLE_STANDARD }) public IDashboardResponse getAppMetricsUrl(@RequestParam String app, HttpServletResponse response) { String metricsUrl = null; if (DashboardConstants.APP_NAME_AC.equals(app)) @@ -121,4 +127,5 @@ public class AdminController { return new ErrorTransport(400, "Client provided app name is invalid as: " + app); } } + }