Sonar fix in ecomp-portal-BE-common
[portal.git] / ecomp-portal-BE-common / src / main / java / org / onap / portalapp / portal / controller / SchedulerController.java
index f7d90db..69f2568 100644 (file)
@@ -33,7 +33,7 @@
  *
  * ============LICENSE_END============================================
  *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ * 
  */
 package org.onap.portalapp.portal.controller;
 
@@ -42,13 +42,16 @@ import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Set;
 import java.util.UUID;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import lombok.NoArgsConstructor;
 import org.json.simple.JSONObject;
 import org.onap.portalapp.controller.EPRestrictedBaseController;
+import org.onap.portalapp.portal.domain.EPUser;
 import org.onap.portalapp.portal.ecomp.model.PortalRestResponse;
 import org.onap.portalapp.portal.ecomp.model.PortalRestStatusEnum;
 import org.onap.portalapp.portal.logging.aop.EPAuditLog;
@@ -62,7 +65,9 @@ import org.onap.portalapp.portal.scheduler.restobjects.PostSubmitVnfChangeRestOb
 import org.onap.portalapp.portal.scheduler.wrapper.GetTimeSlotsWrapper;
 import org.onap.portalapp.portal.scheduler.wrapper.PostCreateNewVnfWrapper;
 import org.onap.portalapp.portal.scheduler.wrapper.PostSubmitVnfChangeTimeSlotsWrapper;
+import org.onap.portalapp.portal.service.AdminRolesService;
 import org.onap.portalapp.portal.utils.PortalConstants;
+import org.onap.portalapp.util.EPUserUtils;
 import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Configuration;
@@ -80,66 +85,77 @@ import org.springframework.web.bind.annotation.RestController;
 @Configuration
 @EnableAspectJAutoProxy
 @EPAuditLog
+@NoArgsConstructor
 public class SchedulerController extends EPRestrictedBaseController {
+       private static final String USER_IS_UNAUTHORIZED_TO_MAKE_THIS_CALL = "User is unauthorized to make this call";
 
-       @Autowired
-       private SchedulerRestInterface schedulerRestController;
+       private static final EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(SchedulerController.class);
+       private static final DateFormat requestDateFormat = new SimpleDateFormat("EEE, dd MMM YYYY HH:mm:ss z");
 
-       private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(SchedulerController.class);
+       private SchedulerRestInterface schedulerRestController;
+       private AdminRolesService adminRolesService;
 
-       /** The request date format. */
-       public DateFormat requestDateFormat = new SimpleDateFormat("EEE, dd MMM YYYY HH:mm:ss z");
+       @Autowired
+       public SchedulerController(SchedulerRestInterface schedulerRestController,
+               AdminRolesService adminRolesService) {
+               this.schedulerRestController = schedulerRestController;
+               this.adminRolesService = adminRolesService;
+       }
 
        @RequestMapping(value = "/get_time_slots/{scheduler_request}", method = RequestMethod.GET, produces = "application/json")
        public ResponseEntity<String> getTimeSlots(HttpServletRequest request,
-                       @PathVariable("scheduler_request") String scheduler_request) throws Exception {
-               try {
-
-                       Date startingTime = new Date();
-                       String startTimeRequest = requestDateFormat.format(startingTime);
-                       logger.debug(EELFLoggerDelegate.debugLogger, "Controller Scheduler GET Timeslots for startTimeRequest: ",
-                                       startTimeRequest);
-                       logger.debug(EELFLoggerDelegate.debugLogger, "Original Request : \n ", scheduler_request);
-                       String path = SchedulerProperties.getProperty(SchedulerProperties.SCHEDULER_GET_TIME_SLOTS)
-                                       + scheduler_request;
-
-                       GetTimeSlotsWrapper schedulerResWrapper = getTimeSlots(scheduler_request, path, scheduler_request);
-
-                       Date endTime = new Date();
-                       String endTimeRequest = requestDateFormat.format(endTime);
-                       logger.debug(EELFLoggerDelegate.debugLogger, "Controller Scheduler - GET for EndTimeRequest",
-                                       endTimeRequest);
-                       return (new ResponseEntity<String>(schedulerResWrapper.getResponse(),
+                       @PathVariable("scheduler_request") String schedulerRequest) throws Exception {
+               if (checkIfUserISValidToMakeSchedule(request)) {
+                       try {
+                               Date startingTime = new Date();
+                               String startTimeRequest = requestDateFormat.format(startingTime);
+                               logger.debug(EELFLoggerDelegate.debugLogger,
+                                               "Controller Scheduler GET Timeslots for startTimeRequest: ", startTimeRequest);
+                               logger.debug(EELFLoggerDelegate.debugLogger, "Original Request = {} ", schedulerRequest);
+
+                               String path = SchedulerProperties.getProperty(SchedulerProperties.SCHEDULER_GET_TIME_SLOTS)
+                                               + schedulerRequest;
+
+                               GetTimeSlotsWrapper schedulerResWrapper = getTimeSlots(path, schedulerRequest);
+
+                               Date endTime = new Date();
+                               String endTimeRequest = requestDateFormat.format(endTime);
+                               logger.debug(EELFLoggerDelegate.debugLogger, "Controller Scheduler - GET for EndTimeRequest = {}",
+                                               endTimeRequest);
+                               return (new ResponseEntity<>(schedulerResWrapper.getResponse(),
                                        HttpStatus.valueOf(schedulerResWrapper.getStatus())));
-               } catch (Exception e) {
-                       GetTimeSlotsWrapper schedulerResWrapper=new GetTimeSlotsWrapper();
-                       schedulerResWrapper.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value());
-                       schedulerResWrapper.setEntity(e.getMessage());
-                       logger.error(EELFLoggerDelegate.errorLogger, "Exception with getTimeslots", e);
-                       return (new ResponseEntity<String>(schedulerResWrapper.getResponse(), HttpStatus.INTERNAL_SERVER_ERROR));
+                       } catch (Exception e) {
+                               GetTimeSlotsWrapper schedulerResWrapper = new GetTimeSlotsWrapper();
+                               schedulerResWrapper.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value());
+                               schedulerResWrapper.setEntity(e.getMessage());
+                               logger.error(EELFLoggerDelegate.errorLogger, "Exception with getTimeslots", e);
+                               return (new ResponseEntity<>(schedulerResWrapper.getResponse(),
+                                       HttpStatus.INTERNAL_SERVER_ERROR));
+                       }
+               }else{
+                       return (new ResponseEntity<>(USER_IS_UNAUTHORIZED_TO_MAKE_THIS_CALL, HttpStatus.UNAUTHORIZED));
                }
-
        }
 
-       protected GetTimeSlotsWrapper getTimeSlots(String request, String path, String uuid) throws Exception {
+       protected GetTimeSlotsWrapper getTimeSlots(String path, String uuid) throws Exception {
 
                try {
                        // STARTING REST API CALL AS AN FACTORY INSTACE
                        logger.debug(EELFLoggerDelegate.debugLogger, "Get Time Slots Request START");
 
-                       GetTimeSlotsRestObject<String> restObjStr = new GetTimeSlotsRestObject<String>();
-                       String str = new String();
+                       GetTimeSlotsRestObject<String> restObjStr = new GetTimeSlotsRestObject<>();
+                       String str = "";
 
                        restObjStr.set(str);
 
                        schedulerRestController.Get(str, uuid, path, restObjStr);
                        GetTimeSlotsWrapper schedulerRespWrapper = SchedulerUtil.getTimeSlotsWrapResponse(restObjStr);
-                       logger.debug(EELFLoggerDelegate.debugLogger, "Get Time Slots Request END : Response: ",
+                       logger.debug(EELFLoggerDelegate.debugLogger, "Get Time Slots Request END : Response: {}",
                                        schedulerRespWrapper.getResponse());
                        if (schedulerRespWrapper.getStatus() != 200 && schedulerRespWrapper.getStatus() != 204
                                        && schedulerRespWrapper.getStatus() != 202) {
                                String message = String.format(
-                                               " getTimeslots Information failed . SchedulerResponseWrapper for gettimeslots: %s", schedulerRespWrapper.getResponse());
+                                               " getTimeslots Information failed . SchedulerResponseWrapper for gettimeslots: {}", schedulerRespWrapper.getResponse());
                                logger.error(EELFLoggerDelegate.errorLogger, message);
                                EPLogUtil.schedulerAccessAlarm(logger, schedulerRespWrapper.getStatus());
 
@@ -155,42 +171,46 @@ public class SchedulerController extends EPRestrictedBaseController {
        @SuppressWarnings("unchecked")
        @RequestMapping(value = "/post_create_new_vnf_change", method = RequestMethod.POST, produces = "application/json")
        public ResponseEntity<String> postCreateNewVNFChange(HttpServletRequest request,
-                       @RequestBody JSONObject scheduler_request) throws Exception {
-               try {
-                       Date startingTime = new Date();
-                       String startTimeRequest = requestDateFormat.format(startingTime);
+                       @RequestBody JSONObject schedulerRequest) throws Exception {
+               if (checkIfUserISValidToMakeSchedule(request)) {
+                       try {
+                               Date startingTime = new Date();
+                               String startTimeRequest = requestDateFormat.format(startingTime);
 
-                       logger.debug(EELFLoggerDelegate.debugLogger, "Controller Scheduler POST : post_create_new_vnf_change",
-                                       startTimeRequest);
+                               logger.debug(EELFLoggerDelegate.debugLogger, "Controller Scheduler POST : post_create_new_vnf_change",
+                                               startTimeRequest);
 
-                       // Generating uuid
-                       String uuid = UUID.randomUUID().toString();
+                               // Generating uuid
+                               String uuid = UUID.randomUUID().toString();
 
-                       scheduler_request.put("scheduleId", uuid);
-                       logger.debug(EELFLoggerDelegate.debugLogger, "UUID : ", uuid);
+                               schedulerRequest.put("scheduleId", uuid);
+                               logger.debug(EELFLoggerDelegate.debugLogger, "UUID = {} ", uuid);
 
-                       // adding uuid to the request payload
-                       scheduler_request.put("scheduleId", uuid);
-                       logger.debug(EELFLoggerDelegate.debugLogger, "Original Request ", scheduler_request.toString());
+                               // adding uuid to the request payload
+                               schedulerRequest.put("scheduleId", uuid);
+                               logger.debug(EELFLoggerDelegate.debugLogger, "Original Request = {}", schedulerRequest.toString());
 
-                       String path = SchedulerProperties
-                                       .getProperty(SchedulerProperties.SCHEDULER_CREATE_NEW_VNF_CHANGE_INSTANCE_VAL) + uuid;
+                               String path = SchedulerProperties
+                                               .getProperty(SchedulerProperties.SCHEDULER_CREATE_NEW_VNF_CHANGE_INSTANCE_VAL) + uuid;
 
-                       PostCreateNewVnfWrapper responseWrapper = postSchedulingRequest(scheduler_request, path, uuid);
+                               PostCreateNewVnfWrapper responseWrapper = postSchedulingRequest(schedulerRequest, path, uuid);
 
-                       Date endTime = new Date();
-                       String endTimeRequest = requestDateFormat.format(endTime);
-                       logger.debug(EELFLoggerDelegate.debugLogger, "Controller Scheduler - POST", endTimeRequest);
+                               Date endTime = new Date();
+                               String endTimeRequest = requestDateFormat.format(endTime);
+                               logger.debug(EELFLoggerDelegate.debugLogger, "Controller Scheduler - POST= {}", endTimeRequest);
 
-                       return new ResponseEntity<String>(responseWrapper.getResponse(),
+                               return new ResponseEntity<>(responseWrapper.getResponse(),
                                        HttpStatus.valueOf(responseWrapper.getStatus()));
-               } catch (Exception e) {
-                       PostCreateNewVnfWrapper responseWrapper=new PostCreateNewVnfWrapper();
-                       responseWrapper.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value());
-                       responseWrapper.setEntity(e.getMessage());
-                       logger.error(EELFLoggerDelegate.errorLogger, "Exception with postCreateNewVNFChange ", e);
-                       return (new ResponseEntity<String>(responseWrapper.getResponse(), HttpStatus.INTERNAL_SERVER_ERROR));
+                       } catch (Exception e) {
+                               PostCreateNewVnfWrapper responseWrapper = new PostCreateNewVnfWrapper();
+                               responseWrapper.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value());
+                               responseWrapper.setEntity(e.getMessage());
+                               logger.error(EELFLoggerDelegate.errorLogger, "Exception with postCreateNewVNFChange ", e);
+                               return (new ResponseEntity<>(responseWrapper.getResponse(), HttpStatus.INTERNAL_SERVER_ERROR));
 
+                       }
+               }else{
+                       return (new ResponseEntity<>(USER_IS_UNAUTHORIZED_TO_MAKE_THIS_CALL, HttpStatus.UNAUTHORIZED));
                }
 
        }
@@ -201,11 +221,11 @@ public class SchedulerController extends EPRestrictedBaseController {
                try {
                        // STARTING REST API CALL AS AN FACTORY INSTACE
 
-                       PostCreateNewVnfRestObject<String> restObjStr = new PostCreateNewVnfRestObject<String>();
-                       String str = new String();
+                       PostCreateNewVnfRestObject<String> restObjStr = new PostCreateNewVnfRestObject<>();
+                       String str = "";
 
                        restObjStr.set(str);
-                       schedulerRestController.<String>Post(str, request, path, restObjStr);
+                       schedulerRestController.Post(str, request, path, restObjStr);
 
                        int status = restObjStr.getStatusCode();
                        if (status >= 200 && status <= 299) {
@@ -214,7 +234,7 @@ public class SchedulerController extends EPRestrictedBaseController {
 
                        PostCreateNewVnfWrapper responseWrapper = SchedulerUtil.postCreateNewVnfWrapResponse(restObjStr);
 
-                       logger.debug(EELFLoggerDelegate.debugLogger, " Post Create New Vnf Scheduling Request END : Response",
+                       logger.debug(EELFLoggerDelegate.debugLogger, " Post Create New Vnf Scheduling Request END : Response = {}",
                                        responseWrapper.getResponse());
                        if (responseWrapper.getStatus() != 200 && responseWrapper.getStatus() != 202 && responseWrapper.getStatus() != 204) {
                                logger.error(EELFLoggerDelegate.errorLogger, "PostCreateNewVnfWrapper Information failed", responseWrapper.getResponse());
@@ -231,40 +251,44 @@ public class SchedulerController extends EPRestrictedBaseController {
 
        @RequestMapping(value = "/submit_vnf_change_timeslots", method = RequestMethod.POST, produces = "application/json")
        public ResponseEntity<String> postSubmitVnfChangeTimeslots(HttpServletRequest request,
-                       @RequestBody JSONObject scheduler_request) throws Exception {
+                       @RequestBody JSONObject schedulerRequest) throws Exception {
+               if (checkIfUserISValidToMakeSchedule(request)) {
                try {
                        Date startingTime = new Date();
                        String startTimeRequest = requestDateFormat.format(startingTime);
-                       logger.debug(EELFLoggerDelegate.debugLogger, " Controller Scheduler POST : submit_vnf_change_timeslots",
+                       logger.debug(EELFLoggerDelegate.debugLogger, " Controller Scheduler POST : submit_vnf_change_timeslots = {}",
                                        startTimeRequest);
 
                        // Generating uuid
-                       String uuid = (String) scheduler_request.get("scheduleId");
-                       logger.debug(EELFLoggerDelegate.debugLogger, "UUID : ", uuid);
+                       String uuid = (String) schedulerRequest.get("scheduleId");
+                       logger.debug(EELFLoggerDelegate.debugLogger, "UUID = {} ", uuid);
 
-                       scheduler_request.remove("scheduleId");
-                       logger.debug(EELFLoggerDelegate.debugLogger, "Original Request for the schedulerId: ",
-                                       scheduler_request.toString());
+                       schedulerRequest.remove("scheduleId");
+                       logger.debug(EELFLoggerDelegate.debugLogger, "Original Request for the schedulerId= {} ",
+                                       schedulerRequest.toString());
 
                        String path = SchedulerProperties.getProperty(SchedulerProperties.SCHEDULER_SUBMIT_NEW_VNF_CHANGE)
                                        .replace("{scheduleId}", uuid);
 
-                       PostSubmitVnfChangeTimeSlotsWrapper responseWrapper = postSubmitSchedulingRequest(scheduler_request, path,
+                       PostSubmitVnfChangeTimeSlotsWrapper responseWrapper = postSubmitSchedulingRequest(schedulerRequest, path,
                                        uuid);
 
                        Date endTime = new Date();
                        String endTimeRequest = requestDateFormat.format(endTime);
-                       logger.debug(EELFLoggerDelegate.debugLogger, " Controller Scheduler - POST Submit for end time request",
+                       logger.debug(EELFLoggerDelegate.debugLogger, " Controller Scheduler - POST Submit for end time request= {}",
                                        endTimeRequest);
 
-                       return (new ResponseEntity<String>(responseWrapper.getResponse(),HttpStatus.valueOf(responseWrapper.getStatus())));
-               } catch (Exception e) {
-                       PostSubmitVnfChangeTimeSlotsWrapper responseWrapper=new PostSubmitVnfChangeTimeSlotsWrapper();
-                       responseWrapper.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value());
-                       responseWrapper.setEntity(e.getMessage());
-                       logger.error(EELFLoggerDelegate.errorLogger, "Exception with Post submit Vnf change Timeslots", e);
-                       return (new ResponseEntity<String>(responseWrapper.getResponse(), HttpStatus.INTERNAL_SERVER_ERROR));
+                       return (new ResponseEntity<>(responseWrapper.getResponse(), HttpStatus.valueOf(responseWrapper.getStatus())));
+                       } catch (Exception e) {
+                               PostSubmitVnfChangeTimeSlotsWrapper responseWrapper = new PostSubmitVnfChangeTimeSlotsWrapper();
+                               responseWrapper.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value());
+                               responseWrapper.setEntity(e.getMessage());
+                               logger.error(EELFLoggerDelegate.errorLogger, "Exception with Post submit Vnf change Timeslots", e);
+                               return (new ResponseEntity<>(responseWrapper.getResponse(), HttpStatus.INTERNAL_SERVER_ERROR));
 
+                       }
+               }else{
+                       return (new ResponseEntity<>(USER_IS_UNAUTHORIZED_TO_MAKE_THIS_CALL, HttpStatus.UNAUTHORIZED));
                }
        }
 
@@ -274,11 +298,11 @@ public class SchedulerController extends EPRestrictedBaseController {
                try {
                        // STARTING REST API CALL AS AN FACTORY INSTACE
 
-                       PostSubmitVnfChangeRestObject<String> restObjStr = new PostSubmitVnfChangeRestObject<String>();
-                       String str = new String();
+                       PostSubmitVnfChangeRestObject<String> restObjStr = new PostSubmitVnfChangeRestObject<>();
+                       String str = "";
 
                        restObjStr.set(str);
-                       schedulerRestController.<String>Post(str, request, path, restObjStr);
+                       schedulerRestController.Post(str, request, path, restObjStr);
 
                        int status = restObjStr.getStatusCode();
                        if (status >= 200 && status <= 299) {
@@ -289,7 +313,7 @@ public class SchedulerController extends EPRestrictedBaseController {
 
                        PostSubmitVnfChangeTimeSlotsWrapper responseWrapper = SchedulerUtil
                                        .postSubmitNewVnfWrapResponse(restObjStr);
-                       logger.debug(EELFLoggerDelegate.debugLogger, "Post Submit Scheduling Request END : Response = ",
+                       logger.debug(EELFLoggerDelegate.debugLogger, "Post Submit Scheduling Request END : Response = {}",
                                        responseWrapper.getResponse());
                        if (responseWrapper.getStatus() != 200 && responseWrapper.getStatus() != 202
                                        && responseWrapper.getStatus() != 204) {
@@ -309,40 +333,72 @@ public class SchedulerController extends EPRestrictedBaseController {
         * Get Scheduler UI constant values from properties file
         * 
         * @return Rest response wrapped around a String; e.g., "success" or "ERROR"
+        * @throws Exception 
         */
        @RequestMapping(value = "/get_scheduler_constant", method = RequestMethod.GET, produces = "application/json")
        public PortalRestResponse<Map<String, String>> getSchedulerConstant(HttpServletRequest request,
-                       HttpServletResponse response) {
+                       HttpServletResponse response) throws Exception {
                logger.debug(EELFLoggerDelegate.debugLogger, "get scheduler constant");
 
                PortalRestResponse<Map<String, String>> portalRestResponse = null;
-               String errorMsg = " is not defined in property file. Please check the property file and make sure all the schedule constant values are defined";
-               HashMap<String, String> constantMap = new HashMap<>();
-               constantMap.put(SchedulerProperties.SCHEDULER_DOMAIN_NAME, "domainName");
-               constantMap.put(SchedulerProperties.SCHEDULER_SCHEDULE_NAME, "scheduleName");
-               constantMap.put(SchedulerProperties.SCHEDULER_WORKFLOW_NAME, "workflowName");
-               constantMap.put(SchedulerProperties.SCHEDULER_CALLBACK_URL, "callbackUrl");
-               constantMap.put(SchedulerProperties.SCHEDULER_APPROVAL_TYPE, "approvalType");
-               constantMap.put(SchedulerProperties.SCHEDULER_APPROVAL_SUBMIT_STATUS, "approvalSubmitStatus");
-               constantMap.put(SchedulerProperties.SCHEDULER_APPROVAL_REJECT_STATUS, "approvalRejectStatus");
-               constantMap.put(SchedulerProperties.SCHEDULER_POLICY_NAME, "policyName");
-               constantMap.put(SchedulerProperties.SCHEDULER_INTERVAL_GET_TIMESLOT_RATE, "intervalRate");
-               constantMap.put(SchedulerProperties.SCHEDULER_GROUP_ID, "groupId");
-               try {
-                       Map<String, String> map = new HashMap<>();
-                       for (Map.Entry<String, String> entry : constantMap.entrySet()) {
-                               if (SchedulerProperties.containsProperty(entry.getKey()))
-                                       map.put(entry.getValue(), SchedulerProperties.getProperty(entry.getKey()));
-                               else
-                                       throw new Exception(entry.getKey() + errorMsg);
+
+               if (checkIfUserISValidToMakeSchedule(request)) {
+                       String errorMsg = " is not defined in property file. Please check the property file and make sure all the schedule constant values are defined";
+                       HashMap<String, String> constantMap = new HashMap<>();
+                       constantMap.put(SchedulerProperties.SCHEDULER_DOMAIN_NAME, "domainName");
+                       constantMap.put(SchedulerProperties.SCHEDULER_SCHEDULE_NAME, "scheduleName");
+                       constantMap.put(SchedulerProperties.SCHEDULER_WORKFLOW_NAME, "workflowName");
+                       constantMap.put(SchedulerProperties.SCHEDULER_CALLBACK_URL, "callbackUrl");
+                       constantMap.put(SchedulerProperties.SCHEDULER_APPROVAL_TYPE, "approvalType");
+                       constantMap.put(SchedulerProperties.SCHEDULER_APPROVAL_SUBMIT_STATUS, "approvalSubmitStatus");
+                       constantMap.put(SchedulerProperties.SCHEDULER_APPROVAL_REJECT_STATUS, "approvalRejectStatus");
+                       constantMap.put(SchedulerProperties.SCHEDULER_POLICY_NAME, "policyName");
+                       constantMap.put(SchedulerProperties.SCHEDULER_INTERVAL_GET_TIMESLOT_RATE, "intervalRate");
+                       constantMap.put(SchedulerProperties.SCHEDULER_GROUP_ID, "groupId");
+                       try {
+                               Map<String, String> map = new HashMap<>();
+                               for (Map.Entry<String, String> entry : constantMap.entrySet()) {
+                                       if (SchedulerProperties.containsProperty(entry.getKey()))
+                                               map.put(entry.getValue(), SchedulerProperties.getProperty(entry.getKey()));
+                                       else
+                                               throw new Exception(entry.getKey() + errorMsg);
+                               }
+                               logger.debug(EELFLoggerDelegate.debugLogger, " portalRestResponse - getSchedulerConstant= {}", map);
+                               portalRestResponse = new PortalRestResponse<>(PortalRestStatusEnum.OK, "success",
+                                       map);
+
+                       } catch (Exception e) {
+                               logger.error(EELFLoggerDelegate.errorLogger, "getSchedulerConstant failed", e);
+                               portalRestResponse = new PortalRestResponse<>(PortalRestStatusEnum.ERROR,
+                                       e.getMessage(), null);
                        }
-                       portalRestResponse = new PortalRestResponse<Map<String, String>>(PortalRestStatusEnum.OK, "success", map);
-               } catch (Exception e) {
-                       logger.error(EELFLoggerDelegate.errorLogger, "getSchedulerConstant failed", e);
-                       portalRestResponse = new PortalRestResponse<Map<String, String>>(PortalRestStatusEnum.ERROR, e.getMessage(),
-                                       null);
+
                }
-               return portalRestResponse;
+        else{
+                       logger.error(EELFLoggerDelegate.errorLogger, "getSchedulerConstant failed: User unauthorized to make this call");
+                       portalRestResponse = new PortalRestResponse<>(PortalRestStatusEnum.ERROR, "failed : Unauthorized", null);
+        }
+                               return portalRestResponse;
        }
 
+       private String getPath(HttpServletRequest request)
+       {
+               String requestURI = request.getRequestURI();
+               String portalApiPath = "";
+               if (requestURI != null) {
+                       String[] uriArray = requestURI.split("/portalApi/");
+                       if (uriArray.length > 1) {
+                               portalApiPath = uriArray[1];
+                       }
+               }
+               return portalApiPath;
+       }
+       
+       private boolean checkIfUserISValidToMakeSchedule(HttpServletRequest request) throws Exception
+       {
+               EPUser user = EPUserUtils.getUserSession(request);
+               String portalApiPath = getPath(request);
+               Set<String> functionCodeList = adminRolesService.getAllAppsFunctionsOfUser(user.getId().toString());
+               return EPUserUtils.matchRoleFunctions(portalApiPath, functionCodeList);
+       }
 }