X-Git-Url: https://gerrit.onap.org/r/gitweb?p=policy%2Fengine.git;a=blobdiff_plain;f=POLICY-SDK-APP%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fpolicy%2Fcontroller%2FPolicyRolesController.java;h=f416386c5a31530b2283d5ffbc958386edfed9ad;hp=798a39d4d093dc804ac1272be863713a68488b37;hb=dbfa1570cd26d19b346287a6fb06f2d8a03f4a06;hpb=428150834ee60899b9a8da019bae3c8bf009adf1 diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyRolesController.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyRolesController.java index 798a39d4d..f416386c5 100644 --- a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyRolesController.java +++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyRolesController.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP Policy Engine * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017, 2019 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,6 +20,11 @@ package org.onap.policy.controller; +import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; +import com.fasterxml.jackson.annotation.PropertyAccessor; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; import java.io.PrintWriter; import java.util.ArrayList; @@ -29,7 +34,8 @@ import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; - +import lombok.Getter; +import lombok.Setter; import org.json.JSONObject; import org.onap.policy.common.logging.flexlogger.FlexLogger; import org.onap.policy.common.logging.flexlogger.Logger; @@ -46,127 +52,151 @@ import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; -import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; -import com.fasterxml.jackson.annotation.PropertyAccessor; -import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; - @Controller @RequestMapping("/") -public class PolicyRolesController extends RestrictedBaseController{ - - private static final Logger LOGGER = FlexLogger.getLogger(PolicyRolesController.class); - - @Autowired - CommonClassDao commonClassDao; - - List scopelist; - - @RequestMapping(value={"/get_RolesData"}, method={org.springframework.web.bind.annotation.RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE) - public void getPolicyRolesEntityData(HttpServletRequest request, HttpServletResponse response){ - try{ - Map model = new HashMap<>(); - ObjectMapper mapper = new ObjectMapper(); - model.put("rolesDatas", mapper.writeValueAsString(commonClassDao.getUserRoles())); - JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model)); - JSONObject j = new JSONObject(msg); - response.getWriter().write(j.toString()); - } - catch (Exception e){ - LOGGER.error("Exception Occured"+e); - } - } - - @RequestMapping(value={"/save_NonSuperRolesData"}, method={org.springframework.web.bind.annotation.RequestMethod.POST}) - public ModelAndView SaveRolesEntityData(HttpServletRequest request, HttpServletResponse response){ - try{ - String scopeName = null; - ObjectMapper mapper = new ObjectMapper(); - mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); - String userId = UserUtils.getUserSession(request).getOrgUserId(); - JsonNode root = mapper.readTree(request.getReader()); - ReadScopes adapter = mapper.readValue(root.get("editRoleData").toString(), ReadScopes.class); - for(int i = 0; i < adapter.getScope().size(); i++){ - if(i == 0){ - scopeName = adapter.getScope().get(0); - }else{ - scopeName = scopeName + "," + adapter.getScope().get(i); - } - } - LOGGER.info("****************************************Logging UserID for Roles Function********************************************************"); - LOGGER.info("UserId: " + userId + "Updating the Scope for following user" + adapter.getLoginId() + "ScopeNames" + adapter.getScope()); - LOGGER.info("*********************************************************************************************************************************"); - PolicyRoles roles = new PolicyRoles(); - roles.setId(adapter.getId()); - roles.setLoginId(adapter.getLoginId()); - roles.setRole(adapter.getRole()); - roles.setScope(scopeName); - commonClassDao.update(roles); - response.setCharacterEncoding("UTF-8"); - response.setContentType("application / json"); - request.setCharacterEncoding("UTF-8"); - - PrintWriter out = response.getWriter(); - String responseString = mapper.writeValueAsString(commonClassDao.getUserRoles()); - JSONObject j = new JSONObject("{rolesDatas: " + responseString + "}"); - - out.write(j.toString()); - } - catch (Exception e){ - LOGGER.error("Exception Occured"+e); - } - return null; - } - - @RequestMapping(value={"/get_PolicyRolesScopeData"}, method={org.springframework.web.bind.annotation.RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE) - public void getPolicyScopesEntityData(HttpServletRequest request, HttpServletResponse response){ - try{ - scopelist = new ArrayList<>(); - Map model = new HashMap<>(); - ObjectMapper mapper = new ObjectMapper(); - mapper.setVisibility(PropertyAccessor.FIELD, Visibility.ANY); - List scopesData = commonClassDao.getDataByColumn(PolicyEditorScopes.class, "scopeName"); - model.put("scopeDatas", mapper.writeValueAsString(scopesData)); - JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model)); - JSONObject j = new JSONObject(msg); - response.getWriter().write(j.toString()); - } - catch (Exception e){ - LOGGER.error("Exception Occured"+e); - } - } -} +public class PolicyRolesController extends RestrictedBaseController { + + private static final Logger LOGGER = FlexLogger.getLogger(PolicyRolesController.class); + + @Autowired + CommonClassDao commonClassDao; + + public void setCommonClassDao(CommonClassDao commonClassDao) { + this.commonClassDao = commonClassDao; + } + + List scopelist; + + /** + * Gets the policy roles entity data. + * + * @param request the request + * @param response the response + */ + @RequestMapping( + value = {"/get_RolesData"}, + method = {org.springframework.web.bind.annotation.RequestMethod.GET}, + produces = MediaType.APPLICATION_JSON_VALUE) + public void getPolicyRolesEntityData(HttpServletRequest request, HttpServletResponse response) { + try { + Map model = new HashMap<>(); + ObjectMapper mapper = new ObjectMapper(); + model.put("rolesDatas", mapper.writeValueAsString(commonClassDao.getUserRoles())); + JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model)); + JSONObject j = new JSONObject(msg); + response.getWriter().write(j.toString()); + } catch (Exception e) { + LOGGER.error("Exception Occured" + e); + } + } -class ReadScopes{ - private int id; - private UserInfo loginId; - private String role; - private ArrayList scope; - - public int getId() { - return id; - } - public void setId(int id) { - this.id = id; - } - public UserInfo getLoginId() { - return loginId; - } - public void setLoginId(UserInfo loginId) { - this.loginId = loginId; - } - public String getRole() { - return role; - } - public void setRole(String role) { - this.role = role; - } - public ArrayList getScope() { - return scope; - } - public void setScope(ArrayList scope) { - this.scope = scope; - } + /** + * Save roles and Mechid entity data. + * + * @param request the request + * @param response the response + * @return the model and view + */ + @RequestMapping( + value = {"/save_NonSuperRolesData"}, + method = {org.springframework.web.bind.annotation.RequestMethod.POST}) + public ModelAndView SaveRolesEntityData(HttpServletRequest request, HttpServletResponse response) { + try { + StringBuilder scopeName = new StringBuilder(); + ObjectMapper mapper = new ObjectMapper(); + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + String userId = UserUtils.getUserSession(request).getOrgUserId(); + JsonNode root = mapper.readTree(request.getReader()); + ReadScopes adapter = mapper.readValue(root.get("editRoleData").toString(), ReadScopes.class); + for (int i = 0; i < adapter.getScope().size(); i++) { + if (i == 0) { + scopeName.append(adapter.getScope().get(0)); + } else { + scopeName.append("," + adapter.getScope().get(i)); + } + } + LOGGER.info( + "****************************************Logging UserID for Roles Function********************************************************"); + LOGGER.info("UserId: " + userId + "Updating the Scope for following user" + adapter.getLoginId() + + "ScopeNames" + adapter.getScope()); + LOGGER.info( + "*********************************************************************************************************************************"); + UserInfo userInfo = new UserInfo(); + userInfo.setUserLoginId(adapter.getLoginId().getUserName()); + userInfo.setUserName(adapter.getLoginId().getUserName()); + + boolean checkNew = false; + if (adapter.getId() == 0 && "mechid".equals(adapter.getRole())) { + // Save new mechid scopes entity data. + LOGGER.info( + "****************************************Logging UserID for New Mechid Function***************************************************"); + LOGGER.info("UserId:" + userId + "Adding new mechid-scopes for following user" + adapter.getLoginId() + + "ScopeNames " + adapter.getScope()); + LOGGER.info( + "*********************************************************************************************************************************"); + // First add the mechid to userinfo + commonClassDao.save(userInfo); + checkNew = true; + } + + PolicyRoles roles = new PolicyRoles(); + roles.setId(adapter.getId()); + roles.setLoginId(adapter.getLoginId()); + roles.setRole(adapter.getRole()); + roles.setScope(scopeName.toString()); + if (checkNew) { + roles.setLoginId(userInfo); + commonClassDao.save(roles); + } else { + commonClassDao.update(roles); + } + response.setCharacterEncoding("UTF-8"); + response.setContentType("application / json"); + request.setCharacterEncoding("UTF-8"); + + PrintWriter out = response.getWriter(); + String responseString = mapper.writeValueAsString(commonClassDao.getUserRoles()); + JSONObject j = new JSONObject("{rolesDatas: " + responseString + "}"); + + out.write(j.toString()); + } catch (Exception e) { + LOGGER.error("Exception Occured" + e); + } + return null; + } + + /** + * Gets the policy scopes entity data. + * + * @param request the request + * @param response the response + */ + @RequestMapping( + value = {"/get_PolicyRolesScopeData"}, + method = {org.springframework.web.bind.annotation.RequestMethod.GET}, + produces = MediaType.APPLICATION_JSON_VALUE) + public void getPolicyScopesEntityData(HttpServletRequest request, HttpServletResponse response) { + try { + scopelist = new ArrayList<>(); + Map model = new HashMap<>(); + ObjectMapper mapper = new ObjectMapper(); + mapper.setVisibility(PropertyAccessor.FIELD, Visibility.ANY); + List scopesData = commonClassDao.getDataByColumn(PolicyEditorScopes.class, "scopeName"); + model.put("scopeDatas", mapper.writeValueAsString(scopesData)); + JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model)); + JSONObject j = new JSONObject(msg); + response.getWriter().write(j.toString()); + } catch (Exception e) { + LOGGER.error("Exception Occured" + e); + } + } +} +@Setter +@Getter +class ReadScopes { + private int id; + private UserInfo loginId; + private String role; + private List scope; }