Merge "Remove technical debt"
[policy/engine.git] / POLICY-SDK-APP / src / main / java / org / onap / policy / controller / PolicyExportAndImportController.java
index 5978f14..5365af1 100644 (file)
@@ -29,7 +29,6 @@ import java.io.FileWriter;
 import java.io.IOException;
 import java.io.PrintWriter;
 import java.util.ArrayList;
-import java.util.HashSet;
 import java.util.Iterator;
 import java.util.LinkedHashMap;
 import java.util.List;
@@ -49,7 +48,6 @@ import org.apache.poi.ss.usermodel.Workbook;
 import org.json.JSONObject;
 import org.onap.policy.common.logging.flexlogger.FlexLogger;
 import org.onap.policy.common.logging.flexlogger.Logger;
-import org.onap.policy.model.Roles;
 import org.onap.policy.rest.adapter.PolicyExportAdapter;
 import org.onap.policy.rest.dao.CommonClassDao;
 import org.onap.policy.rest.jpa.ActionBodyEntity;
@@ -58,6 +56,7 @@ import org.onap.policy.rest.jpa.PolicyEditorScopes;
 import org.onap.policy.rest.jpa.PolicyEntity;
 import org.onap.policy.rest.jpa.PolicyVersion;
 import org.onap.policy.rest.jpa.UserInfo;
+import org.onap.policy.utils.UserUtils.Pair;
 import org.onap.policy.xacml.api.XACMLErrorConstants;
 import org.onap.portalsdk.core.controller.RestrictedBaseController;
 import org.onap.portalsdk.core.web.support.UserUtils;
@@ -116,12 +115,14 @@ public class PolicyExportAndImportController extends RestrictedBaseController {
                PolicyExportAndImportController.commonClassDao = commonClassDao;
        }
 
-       public PolicyExportAndImportController(){}
+       public PolicyExportAndImportController(){
+               // Empty constructor
+       }
 
        @RequestMapping(value={"/policy_download/exportPolicy.htm"}, method={org.springframework.web.bind.annotation.RequestMethod.POST})
        public void exportPolicy(HttpServletRequest request, HttpServletResponse response) throws IOException{
                try{
-                       String file = null;
+                       String file;
                        selectedPolicy = new ArrayList<>();
                        ObjectMapper mapper = new ObjectMapper();
                        mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
@@ -209,30 +210,17 @@ public class PolicyExportAndImportController extends RestrictedBaseController {
                boolean configExists = false;
                boolean actionExists = false;
                String configName = null;
-               String scope = null;
-               boolean finalColumn = false;
+               String scope;
+               boolean finalColumn;
                PolicyController controller = policyController != null ? getPolicyController() : new PolicyController();
                String userId = UserUtils.getUserSession(request).getOrgUserId();
                UserInfo userInfo = (UserInfo) commonClassDao.getEntityItem(UserInfo.class, "userLoginId", userId);
 
-               //Check if the Role and Scope Size are Null get the values from db. 
                List<Object> userRoles = controller.getRoles(userId);
-               roles = new ArrayList<>();
-               scopes = new HashSet<>();
-               for(Object role: userRoles){
-                       Roles userRole = (Roles) role;
-                       roles.add(userRole.getRole());
-                       if(userRole.getScope() != null){
-                               if(userRole.getScope().contains(",")){
-                                       String[] multipleScopes = userRole.getScope().split(",");
-                                       for(int i =0; i < multipleScopes.length; i++){
-                                               scopes.add(multipleScopes[i]);
-                                       }
-                               }else{
-                                       scopes.add(userRole.getScope());
-                               }               
-                       }
-               }
+               Pair<Set<String>, List<String>> pair = org.onap.policy.utils.UserUtils.checkRoleAndScope(userRoles);
+               roles = pair.u;
+               scopes = pair.t;
+               
                FileInputStream excelFile = new FileInputStream(new File(file));
                workbook = new HSSFWorkbook(excelFile);
                Sheet datatypeSheet = workbook.getSheetAt(0);
@@ -251,19 +239,19 @@ public class PolicyExportAndImportController extends RestrictedBaseController {
                        Iterator<Cell> cellIterator = currentRow.cellIterator();
                        while (cellIterator.hasNext()) {
                                Cell cell = cellIterator.next();
-                               if (getCellHeaderName(cell).equalsIgnoreCase("policyName")) {
+                               if ("policyName".equalsIgnoreCase(getCellHeaderName(cell))) {
                                        policyEntity.setPolicyName(cell.getStringCellValue());
                                }
-                               if (getCellHeaderName(cell).equalsIgnoreCase("scope")) {
+                               if ("scope".equalsIgnoreCase(getCellHeaderName(cell))) {
                                        policyEntity.setScope(cell.getStringCellValue());
                                }
-                               if (getCellHeaderName(cell).equalsIgnoreCase("policyData")) {
+                               if ("policyData".equalsIgnoreCase(getCellHeaderName(cell))) {
                                        policyEntity.setPolicyData(cell.getStringCellValue());
                                }
-                               if (getCellHeaderName(cell).equalsIgnoreCase("description")) {
+                               if ("description".equalsIgnoreCase(getCellHeaderName(cell))) {
                                        policyEntity.setDescription(cell.getStringCellValue());
                                }
-                               if (getCellHeaderName(cell).equalsIgnoreCase("configurationbody")) {
+                               if ("configurationbody".equalsIgnoreCase(getCellHeaderName(cell))) {
                                        if(policyEntity.getPolicyName().contains("Config_")){
                                                configExists = true;
                                                configurationDataEntity.setConfigBody(cell.getStringCellValue());
@@ -272,7 +260,7 @@ public class PolicyExportAndImportController extends RestrictedBaseController {
                                                actionBodyEntity.setActionBody(cell.getStringCellValue());
                                        }       
                                }
-                               if (getCellHeaderName(cell).equalsIgnoreCase("configurationName")) {
+                               if ("configurationName".equalsIgnoreCase(getCellHeaderName(cell))) {
                                        finalColumn = true;
                                        configName = cell.getStringCellValue();
                                        if(policyEntity.getPolicyName().contains("Config_")){
@@ -312,7 +300,7 @@ public class PolicyExportAndImportController extends RestrictedBaseController {
                                        }
                                        if (roles.contains(ADMIN) || roles.contains(EDITOR)) {
                                                if(scopes.isEmpty()){
-                                                       //return error("No Scopes has been Assigned to the User. Please, Contact Super-Admin");
+                                                       logger.error("No Scopes has been Assigned to the User. Please, Contact Super-Admin");
                                                }else{
                                                        //1. if Role contains admin, then check if parent scope has role admin, if not don't create a scope and add to list.
                                                        if(roles.contains(ADMIN)){