*/
package org.onap.portalsdk.analytics.system.fusion.adapter;
+import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
+import org.hibernate.criterion.Criterion;
+import org.hibernate.criterion.Restrictions;
import org.onap.portalsdk.analytics.system.AppUtils;
import org.onap.portalsdk.core.domain.Menu;
import org.onap.portalsdk.core.domain.MenuData;
String loginId = "";
try{
- List list = getDataAccessService().getList(User.class, " where user_id = " + userId, null, null);
+ List<Criterion> restrictionsList = new ArrayList<Criterion>();
+ Criterion criterion1 = Restrictions.eq("user_id", userId);
+ restrictionsList.add(criterion1);
+ List list = getDataAccessService().getList(User.class, null, restrictionsList, null);
if (list != null) {
if (!list.isEmpty()) {
User user = (User)list.get(0);
ReportDefinition rdef = rh.loadReportDefinition(request, reportID);
rdef.setAsCopy(request);
request.getSession().setAttribute(AppConstants.SI_REPORT_DEFINITION, rdef);
+ request.getSession().setAttribute("COPY_REPORT_EVENT", "true");
messageJSON.setMessage("Success- Report Copied.");
messageJSON.setAnyStacktrace(rdef.getReportID() + " is Modified and added to session and DB.");
ReportRuntime rr = null;
boolean newReport = false;
MessageJSON messageJSON = new MessageJSON();
- if("-1".equals(id)) {
- id = "Create";
- }
try {
- if (id.equals("InSession")) {
- rdef = (ReportDefinition) request.getSession().getAttribute(AppConstants.SI_REPORT_DEFINITION);
+ String copyReportEvent = (String)request.getSession().getAttribute("COPY_REPORT_EVENT");
+ if (id.equals("InSession") || "true".equals(copyReportEvent)) {
+ rdef = (ReportDefinition) request.getSession().getAttribute(AppConstants.SI_REPORT_DEFINITION);
newReport = false;
} else if (id.equals("Create")) {
persistReportDefinition(request, rdef);
messageJSON.setMessage("Success Definition of given report is saved in session.");
messageJSON.setAnyStacktrace((newReport ? " New Report info is added to Session "
- : rdef.getReportID() + " is Modified and added to session and DB."));
+ : rdef.getReportID() + "- is Modified and added to session and DB."));
} catch (Exception ex) {
messageJSON.setMessage("Error occured while saving definition Tab");
if (!Globals.isSystemInitialized()) {
Globals.initializeSystem(servletContext);
}
-
- if (tabId.equals("Def") && id.equals("InSession")) {
- rdef = (ReportDefinition) request.getSession().getAttribute(AppConstants.SI_REPORT_DEFINITION);
+ String copyReportEvent = (String)request.getSession().getAttribute("COPY_REPORT_EVENT");
+ if (tabId.equals("Def") && id.equals("InSession") || "true".equals(copyReportEvent)) {
+ rdef = (ReportDefinition) request.getSession().getAttribute(AppConstants.SI_REPORT_DEFINITION);
newReport = false;
} else if (tabId.equals("Def") && id.equals("Create")) {
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal SDK
+ * ===================================================================
+ * Copyright © 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ *
+ * Unless otherwise specified, all software contained herein is licensed
+ * under the Apache License, Version 2.0 (the "License");
+ * you may not use this software 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.
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * 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.
+ *
+ * ============LICENSE_END============================================
+ *
+ *
+ */
+
+package org.onap.portalsdk.analytics.system.fusion.adapter;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mockito;
+import org.onap.portalsdk.core.domain.User;
+import org.onap.portalsdk.core.service.DataAccessService;
+import org.onap.portalsdk.core.web.support.AppUtils;
+import org.powermock.api.mockito.PowerMockito;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
+
+@RunWith(PowerMockRunner.class)
+@PrepareForTest(AppUtils.class)
+public class RaptorAdapterTest {
+
+ @Test
+ public void testGetUserLoginId() {
+ User user = new User();
+ user.setLoginId("test");
+ List<User> userList = new ArrayList<>();
+ userList.add(user);
+ DataAccessService mockDataAccessService = Mockito.mock(DataAccessService.class);
+ PowerMockito.mockStatic(AppUtils.class);
+ PowerMockito.when(AppUtils.getDataAccessService()).thenReturn(mockDataAccessService);
+ Mockito.doReturn(userList).when(mockDataAccessService).getList(Mockito.eq(User.class), Mockito.eq(null), Mockito.anyList(), Mockito.eq(null));
+ String loginID = RaptorAdapter.getUserLoginId("1");
+ assertEquals("test",loginID);
+ }
+
+ @Test
+ public void testGetUserLoginIdWithNullList() {
+ DataAccessService mockDataAccessService = Mockito.mock(DataAccessService.class);
+ PowerMockito.mockStatic(AppUtils.class);
+ PowerMockito.when(AppUtils.getDataAccessService()).thenReturn(mockDataAccessService);
+ Mockito.doReturn(null).when(mockDataAccessService).getList(Mockito.eq(User.class), Mockito.eq(null), Mockito.anyList(), Mockito.eq(null));
+ String loginID = RaptorAdapter.getUserLoginId("1");
+ assertEquals("",loginID);
+ }
+}
INSERT INTO fn_restricted_url (restricted_url, function_cd) VALUES ('tab4.htm','menu_tab');
INSERT INTO fn_restricted_url (restricted_url, function_cd) VALUES ('raptor.htm','view_reports');
INSERT INTO fn_restricted_url (restricted_url, function_cd) VALUES ('raptor_blob_extract.htm','view_reports');
+INSERT INTO fn_restricted_url (restricted_url, function_cd) VALUES ('report/wizard/add_formfield_tab_data/*','menu_reports');
+INSERT INTO fn_restricted_url (restricted_url, function_cd) VALUES ('report/wizard/save_formfield_tab_data/*','menu_reports');
+INSERT INTO fn_restricted_url (restricted_url, function_cd) VALUES ('report/wizard/retrieve_form_tab_wise_data/*/delete','menu_reports');
+INSERT INTO fn_restricted_url (restricted_url, function_cd) VALUES ('report/wizard/list_child_report_col/*','menu_reports');
+INSERT INTO fn_restricted_url (restricted_url, function_cd) VALUES ('report/wizard/list_child_report_ff/*','menu_reports');
INSERT INTO fn_restricted_url VALUES('admin','menu_admin');
INSERT INTO fn_restricted_url VALUES('get_role','menu_admin');
INSERT INTO fn_restricted_url VALUES('get_role_functions','menu_admin');
- PORTAL-543 Fix fortify scan security vulnerability issues
- PORTAL-273 Raise JUnit test coverage of Portal/SDK repos to 50% Including JavaScript
- PORTAL-544 Fix for Raptor issues
-
+- PORTAL-545 Copied report is not saved due to report id -1
+- PORTAL-581 Fix for edited copy report name save issue
+- PORTAL-582 Handled SQL injection for user Login Id, Added JUNIT test case for RaptorAdapter.java, Added AT&Tlicense and fixed compilation issue.
+- PORTAL-583 Added portal/SDK 2_6 Scripts to fix Raptor UI issues
Version 2.5.0
- PORTAL-356 Bootstrapping hybrid applications (Angular and AngularJS)
/*****************Init values*********************/
$scope.reportIdURL = $routeParams.reportId;
$scope.isEdit = ($scope.reportIdURL==null||$scope.reportIdURL=='')?false:true;
+ $scope.isCopy = false;
$scope.isDefReady = $scope.isEdit;
$scope.activeTabsId = 'definition';
$scope.pageMsg =''
$scope.stepTabs[x].disabled=false;
}
$scope.showLoader=false;
+ if(isCopy){
+ var newReportId = data.anyStacktrace.split("-")[0];
+ if(newReportId!=null && newReportId!='' && newReportId!=-1)
+ $window.location.href = "#/report_wizard/"+newReportId;
+ }
},function(error){
$scope.errorPopUp(error);
$log.error("report-step-controller: updateDefinition by Id failed.");
/********************Init*************/
$scope.init = function(){
if ($routeParams.reportMode=="copy") {
+ $scope.isCopy = true;
raptorReportFactory.copyReportById($routeParams.reportId).then(function(data){
$scope.isEdit = true;
$scope.reportId = -1;
<div class="span6" ng-hide="showLoader">
- <div class="form-row" ng-if="isEdit">
+ <div class="form-row" ng-if="isEdit && !isCopy">
<label for="textinputID-2a">Report ID</label>
<div class="field-group">
<input id="textinputID-2a" ddh-reset="" class="span12" type="text" data-ng-model="definitionData.reportId" ng-disabled="true">
}
if (isAtomicPut)
- result = MusicCore.atomicPutWithDeleteLock(musicKeySpace, tableName, sessionId, queryObject, null);
+ result = MusicCore.atomicPut(musicKeySpace, tableName, sessionId, queryObject, null);
else
result = MusicCore.eventualPut(queryObject);
logger.debug(EELFLoggerDelegate.debugLogger, "setAttribute: attributeName: " + attributeName
queryObject.addValue(String.valueOf(session.getMaxInactiveInterval()));
queryObject.addValue(session.getId());
if (isAtomicPut)
- result = MusicCore.atomicPutWithDeleteLock(musicKeySpace, musicMetaTable, session.getId(), queryObject, null);
+ result = MusicCore.atomicPut(musicKeySpace, musicMetaTable, session.getId(), queryObject, null);
else
result = MusicCore.eventualPut(queryObject);
logger.debug(EELFLoggerDelegate.debugLogger,
queryObject.appendQueryString(querySB.toString());
queryObject.addValue(sessionId);
if (isAtomicGet)
- result = MusicCore.atomicGetWithDeleteLock(musicKeySpace, musicMetaTable, sessionId, queryObject);
+ result = MusicCore.atomicGet(musicKeySpace, musicMetaTable, sessionId, queryObject);
else
result = MusicCore.get(queryObject);
logger.debug(EELFLoggerDelegate.debugLogger, "getMetaAttribute: with session id: " + sessionId);
queryObject.appendQueryString(querySB.toString());
if (isAtomicGet)
- result = MusicCore.atomicGetWithDeleteLock(musicKeySpace, tableName, sessionId, queryObject);
+ result = MusicCore.atomicGet(musicKeySpace, tableName, sessionId, queryObject);
else
result = MusicCore.get(queryObject);
return MusicUtil.musicRestResponseDataParsing(result, attributeName);
tableName = musicMetaTable;
queryObject.appendQueryString(querySB.toString());
if (isAtomicPut)
- result = MusicCore.atomicPutWithDeleteLock(musicKeySpace, tableName, sessionId, queryObject, null);
+ result = MusicCore.atomicPut(musicKeySpace, tableName, sessionId, queryObject, null);
else
result = MusicCore.eventualPut(queryObject);
logger.debug(EELFLoggerDelegate.debugLogger,
queryObject.appendQueryString(querySB.toString());
queryObject.addValue(sessionId);
if (isAtomic)
- result = MusicCore.atomicPutWithDeleteLock(musicKeySpace, musicMetaTable, sessionId, queryObject, null);
+ result = MusicCore.atomicPut(musicKeySpace, musicMetaTable, sessionId, queryObject, null);
else
result = MusicCore.eventualPut(queryObject);
logger.debug(EELFLoggerDelegate.debugLogger, REMOVE_SESSION + musicMetaTable + WITH_SESSION_ID
queryObject.appendQueryString(querySB.toString());
queryObject.addValue(sessionId);
if (isAtomic)
- result = MusicCore.atomicPutWithDeleteLock(musicKeySpace, musicAttrTable, sessionId, queryObject, null);
+ result = MusicCore.atomicPut(musicKeySpace, musicAttrTable, sessionId, queryObject, null);
else
result = MusicCore.eventualPut(queryObject);
try{
if (isAtomicGet)
- result = MusicCore.atomicGetWithDeleteLock(musicKeySpace, musicMetaTable, null, queryObject);
+ result = MusicCore.atomicGet(musicKeySpace, musicMetaTable, null, queryObject);
else
result = MusicCore.get(queryObject);
Row row = result.one();
queryObject.appendQueryString(querySB.toString());
try{
if (isAtomicPut)
- result = MusicCore.atomicPutWithDeleteLock(musicKeySpace, null, null, queryObject, null);
+ result = MusicCore.atomicPut(musicKeySpace, null, null, queryObject, null);
else
result = MusicCore.eventualPut(queryObject);
}catch(Exception e){
queryObject.appendQueryString(querySB.toString());
try{
if (isAtomicPut)
- result = MusicCore.atomicPutWithDeleteLock(musicKeySpace, null, null, queryObject, null);
+ result = MusicCore.atomicPut(musicKeySpace, null, null, queryObject, null);
else
result = MusicCore.eventualPut(queryObject);
}catch(Exception e){