+++ /dev/null
-/*-
- * ================================================================================
- * eCOMP Portal
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ================================================================================
- */
-package org.openecomp.portalapp.portal.controller;
-
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.EnableAspectJAutoProxy;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RestController;
-
-import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate;
-import org.json.JSONObject;
-import org.openecomp.portalapp.controller.EPRestrictedBaseController;
-import org.openecomp.portalapp.portal.domain.AdminUserApplications;
-import org.openecomp.portalapp.portal.domain.AppIdAndNameTransportModel;
-import org.openecomp.portalapp.portal.domain.AppsResponse;
-import org.openecomp.portalapp.portal.domain.EPApp;
-import org.openecomp.portalapp.portal.domain.EPUser;
-import org.openecomp.portalapp.portal.domain.EcompApp;
-import org.openecomp.portalapp.portal.domain.UserRole;
-import org.openecomp.portalapp.portal.domain.UserRoles;
-import org.openecomp.portalapp.portal.ecomp.model.PortalRestResponse;
-import org.openecomp.portalapp.portal.ecomp.model.PortalRestStatusEnum;
-import org.openecomp.portalapp.portal.logging.aop.EPAuditLog;
-import org.openecomp.portalapp.portal.service.AdminRolesService;
-import org.openecomp.portalapp.portal.service.EPAppService;
-import org.openecomp.portalapp.portal.service.PersUserAppService;
-import org.openecomp.portalapp.portal.service.UserService;
-import org.openecomp.portalapp.portal.transport.FieldsValidator;
-import org.openecomp.portalapp.portal.transport.LocalRole;
-import org.openecomp.portalapp.portal.transport.OnboardingApp;
-import org.openecomp.portalapp.portal.utils.EcompPortalUtils;
-import org.openecomp.portalapp.util.EPUserUtils;
-
-@RestController
-@org.springframework.context.annotation.Configuration
-@EnableAspectJAutoProxy
-@EPAuditLog
-public class AppsController extends EPRestrictedBaseController {
-
- static final String FAILURE = "failure";
- EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(AppsController.class);
-
- @Autowired
- AdminRolesService adminRolesService;
- @Autowired
- EPAppService appService;
- @Autowired
- PersUserAppService persUserAppService;
- @Autowired
- UserService userService;
-
- /**
- * RESTful service method to fetch all Applications available to watch for
- * current user
- *
- * @return
- */
- @RequestMapping(value = { "/portalApi/userApps" }, method = RequestMethod.GET, produces = "application/json")
- public List<EcompApp> getUserApps(HttpServletRequest request, HttpServletResponse response) {
- EPUser user = EPUserUtils.getUserSession(request);
- List<EcompApp> ecompApps = null;
-
- try {
- if (user == null) {
- EcompPortalUtils.setBadPermissions(user, response, "getUserApps");
- } else {
- ecompApps = appService.transformAppsToEcompApps(appService.getUserApps(user));
- EcompPortalUtils.logAndSerializeObject("/portalApi/userApps", "GET result =", ecompApps);
- }
- } catch (Exception e) {
- logger.error(EELFLoggerDelegate.errorLogger,
- "Exception occurred while performing getUserApps operation, Details: "
- + EcompPortalUtils.getStackTrace(e));
- }
-
- return ecompApps;
- }
-
- /**
- * Create new application's contact us details.
- *
- * @param contactUs
- * @return
- */
- @RequestMapping(value = "/portalApi/saveNewUser", method = RequestMethod.POST, produces = "application/json")
- public PortalRestResponse<String> saveNewUser(HttpServletRequest request,@RequestBody EPUser newUser) {
- EPUser user = EPUserUtils.getUserSession(request);
- if (newUser == null)
- return new PortalRestResponse<String>(PortalRestStatusEnum.ERROR, FAILURE,
- "New User cannot be null or empty");
-
- if (!(adminRolesService.isSuperAdmin(user) || adminRolesService.isAccountAdmin(user))){
- if(!user.getLoginId().equalsIgnoreCase(newUser.getLoginId()))
- return new PortalRestResponse<String>(PortalRestStatusEnum.ERROR, FAILURE,
- "UnAuthorized");
- }
-
- String checkDuplicate = request.getParameter("isCheck");
- String saveNewUser = FAILURE;
- try {
- saveNewUser = userService.saveNewUser(newUser,checkDuplicate);
- } catch (Exception e) {
- return new PortalRestResponse<String>(PortalRestStatusEnum.ERROR, saveNewUser, e.getMessage());
- }
- return new PortalRestResponse<String>(PortalRestStatusEnum.OK, saveNewUser, "");
- }
-
- /**
- * RESTful service method to fetch all applications accessible to the
- * current user, with personalizations.
- *
- * @return
- */
- @RequestMapping(value = { "/portalApi/persUserApps" }, method = RequestMethod.GET, produces = "application/json")
- public List<EcompApp> getPersUserApps(HttpServletRequest request, HttpServletResponse response) throws IOException {
- EPUser user = EPUserUtils.getUserSession(request);
- List<EcompApp> ecompApps = null;
- try {
- if (user == null) {
- EcompPortalUtils.setBadPermissions(user, response, "getPersUserApps");
- } else {
- List<EPApp> apps = null;
- if (adminRolesService.isSuperAdmin(user))
- apps = appService.getPersAdminApps(user);
- else
- apps = appService.getPersUserApps(user);
- ecompApps = appService.transformAppsToEcompApps(apps);
- EcompPortalUtils.logAndSerializeObject("/portalApi/userPersApps", "GET result =", ecompApps);
- }
- } catch (Exception e) {
- logger.error(EELFLoggerDelegate.errorLogger, "Failed in getPersUserApps", e);
- response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.toString());
- }
- return ecompApps;
- }
-
- /**
- * RESTful service method to fetch applications for which the current user
- * is an Administrator
- *
- * @return
- */
- @RequestMapping(value = { "/portalApi/adminApps" }, method = RequestMethod.GET, produces = "application/json")
- public List<AppIdAndNameTransportModel> getAdminApps(HttpServletRequest request, HttpServletResponse response) {
- EPUser user = EPUserUtils.getUserSession(request);
- List<AppIdAndNameTransportModel> adminApps = null;
-
- try {
- if (!adminRolesService.isAccountAdmin(user)) {
- EcompPortalUtils.setBadPermissions(user, response, "getAdminApps");
- } else {
- adminApps = appService.getAdminApps(user);
- EcompPortalUtils.logAndSerializeObject("/portalApi/adminApps", "GET result =", adminApps);
- }
- } catch (Exception e) {
- logger.error(EELFLoggerDelegate.errorLogger,
- "Exception occurred while performing getAdminApps operation, Details: "
- + EcompPortalUtils.getStackTrace(e));
- }
-
- return adminApps;
- }
-
- /**
- * RESTful service method to fetch Applications in which the logged in user
- * is an Administrator
- *
- * @return
- */
- @RequestMapping(value = {
- "/portalApi/appsForSuperAdminAndAccountAdmin" }, method = RequestMethod.GET, produces = "application/json")
- public List<AppIdAndNameTransportModel> getAppsForSuperAdminAndAccountAdmin(HttpServletRequest request,
- HttpServletResponse response) {
- EPUser user = EPUserUtils.getUserSession(request);
- List<AppIdAndNameTransportModel> adminApps = null;
-
- try {
- if (!adminRolesService.isSuperAdmin(user) && !adminRolesService.isAccountAdmin(user)) {
- EcompPortalUtils.setBadPermissions(user, response, "getAdminApps");
- } else {
- adminApps = appService.getAppsForSuperAdminAndAccountAdmin(user);
- EcompPortalUtils.logAndSerializeObject("/portalApi/appsForSuperAdminAndAccountAdmin", "GET result =",
- adminApps);
- }
- } catch (Exception e) {
- logger.error(EELFLoggerDelegate.errorLogger,
- "Exception occurred while performing getAppsForSuperAdminAndAccountAdmin operation, Details: "
- + EcompPortalUtils.getStackTrace(e));
- }
-
- return adminApps;
- }
-
- /**
- * RESTful service method to fetch Application Administrators to Super
- * Administrator user. Attention: Users which have Super Administrator roles
- * only are not included!
- *
- * @return
- */
- @RequestMapping(value = { "/portalApi/accountAdmins" }, method = RequestMethod.GET, produces = "application/json")
- public List<AdminUserApplications> getAppsAdministrators(HttpServletRequest request, HttpServletResponse response) {
- EPUser user = EPUserUtils.getUserSession(request);
- List<AdminUserApplications> admins = null;
-
- try {
- if (!adminRolesService.isSuperAdmin(user)) {
- EcompPortalUtils.setBadPermissions(user, response, "getAppsAdministrators");
- } else {
- admins = appService.getAppsAdmins();
- EcompPortalUtils.logAndSerializeObject("/portalApi/accountAdmins", "GET result =", admins);
- }
- } catch (Exception e) {
- logger.error(EELFLoggerDelegate.errorLogger,
- "Exception occurred while performing getAppsAdministrators operation, Details: "
- + EcompPortalUtils.getStackTrace(e));
- }
-
- return admins;
- }
-
- @RequestMapping(value = { "/portalApi/availableApps" }, method = RequestMethod.GET, produces = "application/json")
- public List<AppsResponse> getApps(HttpServletRequest request, HttpServletResponse response) {
- EPUser user = EPUserUtils.getUserSession(request);
- List<AppsResponse> apps = null;
- try {
- if (!adminRolesService.isSuperAdmin(user)) {
- EcompPortalUtils.setBadPermissions(user, response, "getApps");
- } else {
- apps = appService.getAllApps(false);
- EcompPortalUtils.logAndSerializeObject("/portalApi/availableApps", "GET result =", apps);
- }
- } catch (Exception e) {
- logger.error(EELFLoggerDelegate.errorLogger,
- "Exception occurred while performing getApps operation, Details: "
- + EcompPortalUtils.getStackTrace(e));
- }
-
- return apps;
- }
-
- /**
- * Gets all apps, both active and inactive; i.e., all on-boarded apps,
- * regardless of enabled status.
- *
- * @param request
- * @param response
- * @return List of applications
- */
- // This API returns
- @RequestMapping(value = {
- "/portalApi/allAvailableApps" }, method = RequestMethod.GET, produces = "application/json")
- public List<AppsResponse> getAllApps(HttpServletRequest request, HttpServletResponse response) {
- EPUser user = EPUserUtils.getUserSession(request);
- List<AppsResponse> apps = null;
- try {
- if (!adminRolesService.isSuperAdmin(user)) {
- EcompPortalUtils.setBadPermissions(user, response, "getApps");
- } else {
- apps = appService.getAllApps(true);
- EcompPortalUtils.logAndSerializeObject("/portalApi/availableApps", "GET result =", apps);
- }
- } catch (Exception e) {
- logger.error(EELFLoggerDelegate.errorLogger, "Failed in getAllApps", e);
- }
-
- return apps;
- }
-
- @RequestMapping(value = { "/portalApi/appsFullList" }, method = RequestMethod.GET, produces = "application/json")
- public List<EcompApp> getAppsFullList(HttpServletRequest request, HttpServletResponse response) {
- EPUser user = EPUserUtils.getUserSession(request);
- List<EcompApp> ecompApps = null;
- if (user == null) {
- EcompPortalUtils.setBadPermissions(user, response, "getAppsFullList");
- } else {
- ecompApps = appService.getEcompAppAppsFullList();
- EcompPortalUtils.logAndSerializeObject("/portalApi/appsFullList", "GET result =", ecompApps);
- }
-
- return ecompApps;
- }
-
- @RequestMapping(value = { "/portalApi/userProfile" }, method = RequestMethod.GET, produces = "application/json")
- public UserRoles getUserProfile(HttpServletRequest request, HttpServletResponse response) {
- EPUser user = EPUserUtils.getUserSession(request);
- UserRoles userAndRoles = null;
- try {
- if (user == null) {
- EcompPortalUtils.setBadPermissions(user, response, "getUserProfile");
- } else {
- // Check database.
- userAndRoles = appService.getUserProfile(user.getLoginId());
- // If no roles are defined, treat this user as a guest.
- if (user.isGuest() || userAndRoles == null) {
- logger.debug(EELFLoggerDelegate.debugLogger, "getUserProfile: treating user {} as guest",
- user.getLoginId());
- UserRole userRole = new UserRole();
- userRole.setOrgUserId(user.getLoginId());
- userRole.setFirstName(user.getFirstName());
- userRole.setLastName(user.getLastName());
- userRole.setRoleId(-1L);
- userRole.setRoleName("Guest");
- userRole.setUser_Id(-1L);
- userAndRoles = new UserRoles(userRole);
- }
- }
- } catch (Exception e) {
- logger.error(EELFLoggerDelegate.errorLogger, "Failed to get user names and roles", e);
- }
-
- EcompPortalUtils.logAndSerializeObject("/portalApi/userProfile", "getUserProfile result =", userAndRoles);
- return userAndRoles;
- }
-
- @RequestMapping(value = { "/portalApi/currentUserProfile/{loginId}" }, method = RequestMethod.GET, produces = "application/json")
- public String getCurrentUserProfile(HttpServletRequest request, @PathVariable("loginId") String loginId) {
-
- Map<String,String> map = new HashMap<String,String>();
- EPUser user = null;
- try {
- user = (EPUser) userService.getUserByUserId(loginId).get(0);
- map.put("firstName", user.getFirstName());
- map.put("lastName", user.getLastName());
- map.put("email", user.getEmail());
- map.put("loginId", user.getLoginId());
- map.put("loginPwd",user.getLoginPwd());
- map.put("middleInitial",user.getMiddleInitial());
- } catch (Exception e) {
- logger.error(EELFLoggerDelegate.errorLogger, "Failed to get user info", e);
- }
-
- JSONObject j = new JSONObject(map);;
- return j.toString();
- }
-
- @RequestMapping(value = { "/portalApi/appRoles/{appId}" }, method = {
- RequestMethod.GET }, produces = "application/json")
- public List<LocalRole> getAppRoles(HttpServletRequest request, @PathVariable("appId") Long appId) {
- List<LocalRole> roleList = null;
- try {
- roleList = appService.getAppRoles(appId);
- EcompPortalUtils.logAndSerializeObject("/portalApi/appRoles/" + appId, "GET result =", roleList);
- } catch (Exception e) {
- logger.error(EELFLoggerDelegate.errorLogger,
- "Exception occurred while performing getAppRoles operation, Details: "
- + EcompPortalUtils.getStackTrace(e));
- }
-
- return roleList;
- }
-
- @RequestMapping(value = { "/portalApi/onboardingApps" }, method = RequestMethod.GET, produces = "application/json")
- public List<OnboardingApp> getOnboardingApps(HttpServletRequest request, HttpServletResponse response) {
- EPUser user = EPUserUtils.getUserSession(request);
- List<OnboardingApp> onboardingApps = null;
- try {
- if (!adminRolesService.isSuperAdmin(user)) {
- EcompPortalUtils.setBadPermissions(user, response, "getOnboardingApps");
- } else {
- onboardingApps = appService.getOnboardingApps();
- EcompPortalUtils.logAndSerializeObject("/portalApi/onboardingApps", "GET result =",
- "onboardingApps of size " + onboardingApps.size());
- }
- } catch (Exception e) {
- logger.error(EELFLoggerDelegate.errorLogger,
- "Exception occurred while performing getOnboardingApps operation, Details: "
- + EcompPortalUtils.getStackTrace(e));
- }
-
- return onboardingApps;
- }
-
- @RequestMapping(value = { "/portalApi/onboardingApps" }, method = RequestMethod.PUT, produces = "application/json")
- public FieldsValidator putOnboardingApp(HttpServletRequest request,
- @RequestBody OnboardingApp modifiedOnboardingApp, HttpServletResponse response) {
- FieldsValidator fieldsValidator = null;
- try {
- EPUser user = EPUserUtils.getUserSession(request);
- if (!adminRolesService.isSuperAdmin(user)) {
- EcompPortalUtils.setBadPermissions(user, response, "putOnboardingApp");
- } else {
- modifiedOnboardingApp.normalize();
- fieldsValidator = appService.modifyOnboardingApp(modifiedOnboardingApp, user);
- response.setStatus(fieldsValidator.httpStatusCode.intValue());
- }
- } catch (Exception e) {
- logger.error(EELFLoggerDelegate.errorLogger,
- "Exception occurred while performing putOnboardingApps operation, Details: "
- + EcompPortalUtils.getStackTrace(e));
- }
-
- EcompPortalUtils.logAndSerializeObject("/portalApi/onboardingApps", "PUT result =", response.getStatus());
- return fieldsValidator;
- }
-
- @RequestMapping(value = { "/portalApi/onboardingApps" }, method = RequestMethod.POST, produces = "application/json")
- public FieldsValidator postOnboardingApp(HttpServletRequest request, @RequestBody OnboardingApp newOnboardingApp,
- HttpServletResponse response) {
- FieldsValidator fieldsValidator = null;
- try {
- EPUser user = EPUserUtils.getUserSession(request);
- if (!adminRolesService.isSuperAdmin(user)) {
- EcompPortalUtils.setBadPermissions(user, response, "postOnboardingApps");
- } else {
- newOnboardingApp.normalize();
- fieldsValidator = appService.addOnboardingApp(newOnboardingApp, user);
- response.setStatus(fieldsValidator.httpStatusCode.intValue());
- }
- } catch (Exception e) {
- logger.error(EELFLoggerDelegate.errorLogger,
- "Exception occurred while performing postOnboardingApps operation, Details: "
- + EcompPortalUtils.getStackTrace(e));
- }
-
- EcompPortalUtils.logAndSerializeObject("/portalApi/onboardingApps", "POST result =", response.getStatus());
- return fieldsValidator;
- }
-
- @RequestMapping(value = { "/portalApi/onboardingApps/{appId}" }, method = {
- RequestMethod.DELETE }, produces = "application/json")
- public FieldsValidator deleteOnboardingApp(HttpServletRequest request, @PathVariable("appId") Long appId,
- HttpServletResponse response) {
- FieldsValidator fieldsValidator = null;
- ;
- try {
- EPUser user = EPUserUtils.getUserSession(request);
- if (!adminRolesService.isSuperAdmin(user)) {
- EcompPortalUtils.setBadPermissions(user, response, "deleteOnboardingApps");
- } else {
- fieldsValidator = appService.deleteOnboardingApp(user, appId);
- response.setStatus(fieldsValidator.httpStatusCode.intValue());
- }
- } catch (Exception e) {
- logger.error(EELFLoggerDelegate.errorLogger, EcompPortalUtils.getStackTrace(e));
- }
-
- EcompPortalUtils.logAndSerializeObject("/portalApi/onboardingApps" + appId, "DELETE result =",
- response.getStatus());
- return fieldsValidator;
- }
-}
\ No newline at end of file